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

分隔符为什么放在BEGIN里就没问题,难道我那样写错了?

# awk 'BEGIN{FS="[: ]+";OFS=":"}NR==FNR{a[$1]=$2;next}{$2=a[$1];print}' b a

a:1:a1

b:2:b1

c:3:c1


我们知道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

原文:http://blog.csdn.net/hongchangfirst/article/details/25071937

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • https://blog.csdn.net/hongchangfirst/article/details/2507...
    阿基米德来了阅读 2,857评论 0 0
  • 本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...
    楠人帮阅读 1,377评论 0 8
  • awk介绍awk变量printf命令:实现格式化输出操作符awk patternawk actionawk数组aw...
    哈喽别样阅读 1,743评论 0 4
  • awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信...
    想赚钱的雷大阅读 564评论 0 3
  • Linux指令中文说明传送入口 整理自Linux指令中文说明 文本和数据进行处理的编程语言awk 是一种编程语言,...
    释闲人阅读 2,393评论 1 6

友情链接更多精彩内容