使用 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';'

相關內容