awk 印刷スペースで区切られた列 [閉じる]

awk 印刷スペースで区切られた列 [閉じる]

私のディレクトリには次の* .datファイルがあります。

$ cat holiday_us.dat
20210101 1     New Year's Day
20210102 2     Labor Day
20210103 1     Independence Day

私が望む出力:

20210101_New Year'sDay
20210102_LaborDay
20210103_IndependenceDay

私が試したコード:

for file in /home/path/holly*.dat
do 
awk -f ' ' '{print $1,"_",print$2}' "$file"
done
}

次の結果が表示されます。

20210101
New
20210102
Labor
20210103
Independence

ベストアンサー1

出力フィールドの区切り文字をOFSnull(空)文字列と$2次に変更します_

$ awk -v OFS= '{ $2="_" }1' *.dat
20210101_NewYear'sDay
20210102_LaborDay
20210103_IndependenceDay

おすすめ記事