最近、次のgrepコマンドに遭遇しました:
/usr/xpg4/bin/grep -Ff grep.txt input.txt > output.txt
これは、私の理解によれば、input.txtから、grep.txtに含まれている問題をgrepして、output.txtに出力することを意味します。
Sedについても同様のことをしたい、つまりsedコマンドを別のファイル(たとえばsed.txt)に保持し、それらを入力ファイル(たとえばinput.txt)に適用して出力ファイル(たとえばoutput.txt)を作成したい)。
私は以下を試しました:
/usr/xpg4/bin/sed -f sed.txt input.txt > output.txt
これは機能せず、次のエラーが発生します。
sed: command garbled
上記のファイルの内容は次のとおりです。
sed.txt
sed s/234/acn/ input.txt
sed s/78gt/hit/ input.txt
input.txt
234GH
5234BTW
89er
678tfg
234
234YT
tfg456
wert
78gt
gh23444
きみの sed.txt
にはsed
コマンドのみを含める必要があります。sed
の接頭辞や入力ファイルの接尾辞は使用できません。あなたの場合、それはおそらく次のようになります:
# sed.txt
s/234/acn/
s/78gt/hit/
入力で実行した場合:
$ /usr/xpg4/bin/sed -f sed.txt input.txt
acnGH 5acnBTW 89er 678tfg acn acnYT tfg456 wert ヒット ghacn44
Sedコマンドを個別のテキストファイルに保存するのではなく、sedスクリプトを作成してみてください。以下のファイルは、データファイルで直接実行できます。
./myscript.sed inputfile.txt> outputfile.txt
#!/bin/sed -f
s/234/acn/
s/78gt/hit/