linux awk 改变文件的内容的分隔符并添加行号

2013-6-9 杜世伟 awk

linux awk 改变文件的内容的分隔符并添加行号以下是范例内容,使用‘,’分隔符
$ cat testfile.out
3232,32332,54545,34
3233,45645,23233,23
1211,1212,4343,434
3434,121121,121,33
替换文件内容中,为|并且为每行添加新的行号,输出结果为:
1|3232|32332|54545|34
2|3233|45645|23233|23
3|1211|1212|4343|434
4|3434|121121|121|33

方法一:通过awk 内置gsub函数进行内容替换
awk -F " " '{printf NR"|" } {gsub(/ /,"|",$0)}1' testfile.out
此处的-F " " 可以省略不写,因为awk默认是使用空格分割

方法二:也是通过awk另一种实现方式,通过修改默认的分隔符
awk 'BEGIN{FS=",";OFS="|"} {$1=$1; print NR,$0}' testfile.out
命令解释:FS=',' 为输入分隔符 OFS="|" 为输出分隔符

方法三:通过Linux tr 命令
tr ',' '|' < file.txt
不过此方法输出的结果为:
3232|32332|54545|34
3233|45645|23233|23
1211|1212|4343|434
3434|121121|121|33
此处并没有输出行号

标签: linux tr awk

Powered by emlog 沪ICP备2023034538号-1