スペースで区切られた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