![使用 AWK 后的行分隔符](https://linux22.com/image/110357/%E4%BD%BF%E7%94%A8%20AWK%20%E5%90%8E%E7%9A%84%E8%A1%8C%E5%88%86%E9%9A%94%E7%AC%A6.png)
awk -F ';' '{print $1}' FileName
我正在使用此命令打印以分号分隔的文件的第一列。
现在,我必须循环遍历上述命令的输出。如果我的输出是
0
1
2
我必须循环遍历每个记录,并且必须指定迭代输出中的记录分隔符是什么
有没有办法打印如下输出
0;1;2
这样我就可以重复说分隔符是 ;
答案1
避免尾随分号
awk -F\; 'NR>1 { printf ";" ;} {printf "%s",$1;} END {printf "\n"} '
printf
不打印换行符NR>1
只在第一行之后打印END
在最后一行之后打印。
答案2
awk
ORS
在每个语句末尾输出(输出记录分隔符)的值print
。默认情况下它是换行符,但您可以更改它:
$ cat foo.txt
0;3;6
1;4;7
2;5;8
$ awk -vORS=';' -F';' '{print $1} END {printf "\n"}' foo.txt
0;1;2;
我添加了END {printf "\n"}
来在输出末尾换行。
答案3
你也可以使用 coreutils:
<foo.txt cut -d';' -f1 | paste -sd';'