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