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