linux(awk) 將某個以逗號分隔的行改爲列(橫向縱向格式調整)

我想達到的效果是這樣的

a,b,c   
       →效果
a
b
c

假設`sample.txt`文本的內容如下:

a,b,c,d,e

用awk,使用如下的命令

cat sample.txt |awk 'BEGIN{RS=","}{print $1}'

awk 'BEGIN{RS=","}{print $1}' sample.txt

其中BEGIN{RS=","},指定了分隔的符號是逗號。RS是換行,實際上是以換行替換逗號。

執行結果:

a
b
c
d
e

不使用使用{print $1},{print $0}也是可以的。只是注意輸出在屏幕上會出現一個換行。如下,

# BEGIN{RS=","}指定換行替換的符號;
# {print NR, $1,RS}依次打印輸出:行號,第一列/字段內容,RS換行的指定符號
~/test$ awk 'BEGIN{RS=","}{print NR, $1,RS}' sample.txt
1 a ,
2 b ,
3 c ,
4 d ,
5 e ,
# print $1與 $0 屏幕輸出效果對比看看
~/test$ awk 'BEGIN{RS=","}{print NR, $0,RS}' sample.txt
1 a ,
2 b ,
3 c ,
4 d ,
5 e
 ,
# NR是輸出行號。$0與$1內容相同,只是屏幕輸出效果略不同
~/test$ awk 'BEGIN{RS=","}{print NR, $0}' sample.txt
1 a
2 b
3 c
4 d
5 e

~/test$ awk 'BEGIN{RS=","}{print NR, $1}' sample.txt
1 a
2 b
3 c
4 d
5 e
~/test$ 

 

以上。

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章