linux(awk) 将某个以逗号分隔的行改为列(横向纵向格式调整)

4 篇文章 0 订阅

我想达到的效果是这样的

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$ 

 

以上。

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值