awk按照多个分隔符进行分割

我们知道awk可以进行类似于cut之类的操作,如一个文件data如下

zhc-123|zhang

hongchangfirst-99|zhang

hongchang-100|zhang


如果我们

awk -F ‘-’ ‘{print $1;}’ data

会打印出

zhc

hongchangfirst

hongchang


但是如果我想根据多个分隔符进行分割呢?一种办法是两次awk,但是我们可以一次告诉awk我们所有的分隔符,如-和|这两个,如

awk -F ‘[-|]’ ‘{print $3;}’ data

会打印出

zhang

zhang

zhang

就这么简单,还有一个问题,如果我们想用[]作为分隔符怎么办?有办法,这样就行:

awk -F ‘[][]’ ‘{print $3;}’ data


这里在多说一个技巧,如果你想把两个文件按照对应的每行放在同一行上,可以用paste,比如:

data1文件为

1

2

3

data2的文件为

zhang

zhc

hongchangfirst


那么你想要得到

1 zhang

2 zhc

3 hongchangfirst


那么你这样就也可以,

paste data1 data2


默认使用tab键作为份分隔符,还可以自定义分隔符,如用=号:

paste -d‘=’ data1 data2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值