純粋な猫の代わりに、このコマンドライン(/usr/bin/awk '{$1=$1};1')の利点は何ですか?

純粋な猫の代わりに、このコマンドライン(/usr/bin/awk '{$1=$1};1')の利点は何ですか?

AWSを読んでいます。eic_harvest_hostkeysスクリプト、次の行を理解できません。

key=$(/usr/bin/awk '{$1=$1};1' < "${file}")

awkの利点は何ですか?もっと良くないですかkey=$(/bin/cat "${file}")

ベストアンサー1

key=$(/bin/cat "${file}")key改行なしでファイルの内容に設定します。 (ヌルバイトではなくテキストファイルであると仮定します。)

key=$(/usr/bin/awk '{$1=$1};1' < "${file}")水平スペースの正規化:各行の先頭と末尾からスペースとタブを削除し、内部スペースとタブ順序を単一のスペースに圧縮します。$1=$1うまくいかないようですが、実際には、awkに更新されたフィールドに基づいて行を書き換えさせ、行を書き換えると、フィールドの周りの空白情報が削除されます。その後、末尾の改行文字も削除します。


¹ $fileaで始まらない場合は、オプションパラメータとして扱われます-cat使用する方が良いでしょうkey=$(cat < "$file")key=$(cat -- "$file")また改善されますが、file='-'それでも問題です)。

おすすめ記事