0

以下のコマンドを実行したところ、エラーが発生しました。

k="";while read r;do [ "$k" != "" ] ="$k|";k="$k^$r\$";done<1;awk -v "KEY=$k" -v "CB=CB" -v "CSA=CSA" "BEGIN{FS=\"|\";OFS=\"|\"}{if (\$2 ~ KEY){print \$0>CB}else{print \$0>CSA}}" abc

エラー:

bash: line 1: [: missing `]'

これについて私を助けてください。

ありがとう

4

1 に答える 1

0

なんで一行?より正気で書かれた、あなたのコードは次のとおりです。

k=""
while read r
do
    [ "$k" != "" ] ="$k|"
    k="$k^$r\$"
done <1

awk -v "KEY=$k" -v "CB=CB" -v "CSA=CSA" \
    'BEGIN{FS="|";OFS="|"}{if ($2 ~ KEY){print $0>CB}else{print $0>CSA}}' abc

問題は次のtestコマンドにあります。

[ "$k" != "" ] ="$k|"

コマンドの最後の引数は です="$k|"[、最後の引数を にする必要があります]

プログラムは、awkプログラムを一重引用符で囲むことで簡素化されました。バックスラッシュは不要になりました。

<1リダイレクトも少し奇妙です。というファイルから読み取ります1

于 2013-08-03T10:22:13.837 に答える