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

関連情報