読む

読む

スペースで区切られた2つの文字列で1行を区切る必要があります(例:)key value

私は試した:

key=$(awk -FS=" " {print $1} line)
value=$(awk -FS=" " {print $2} line)

しかし、私は次のようになります。

awk:ライン2:行方不明}ファイルの末尾付近

どんなアイデアがありますか?

ベストアンサー1

awkコマンドラインのスクリプトは一重引用符で囲む必要があります。

awk -F ' ' '{ print $1 }' filename

周囲の一重引用符に注意してください{ ... }。これを設定する正しい方法は、ブロックを介して、FSパススルー-F-v FS=...またはBEGINブロック内で設定することですが、withでは設定しません-FS=...

作成したコマンドもlineファイル名とみなします。


$lineスペースが1つだけの文字列の場合は、2つの文字列に分割できます。

first_part=${line% *}   # removes the space and everything after it
second_part=${line#* }  # removes the space and everything before it

同様に、if は$line以下を含む文字列です。=

first_part=${line%=*}   # removes the = and everything after it
second_part=${line#*=}  # removes the = and everything before it

おすすめ記事