使用 AWK 后的行分隔符

使用 AWK 后的行分隔符
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

awkORS在每个语句末尾输出(输出记录分隔符)的值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';'

相关内容