私はファイルを持っており、それを処理するにはsed
を使用する必要があります。
端末とスクリプトのコマンドは異なる動作をします
ここは私のコマンドです:sed -i -e '/.*tour\.html\|.*Thumb[^\/]*\.jpg/!d'
です。
ここで端末からこのコマンドを実行すると、たとえばsed -i -e '/.*tour\.html\|.*Thumb[^\/]*\.jpg/!d' myfile.txt
のようになります。しかし、同じコマンドでbashスクリプトを書くと、すべての行が削除されます。
#!/bin/bash
sed -i -e '/.*tour\.html\|.*Thumb[^\/]*\.jpg/!d' "$1"
このスクリプトは、ファイル内のすべての行を削除します。
私のPCはMac OSです。
どちらの場合でも、 'sed --version'と' sed --help'(-iの部分)の出力を表示します。 – Yunnosch
@Yunnosch私は端末で 'sed --version'を実行します。私は' sed --version'をスクリプトに書いてこのスクリプトを実行するのに対し、いくつかの情報を持っています。 'sed:illegal option - -' 。だから私は2種類の「sed」を持っているということですか? – Yves
^^はい、おそらく 'sed'の2つのコピーがインストールされています。あなたの 'PATH'変数に基づいて、' bash'は2つのケースで異なるものを選んでいます。どちらの場合でも 'sed'の出力を確認してください。 – anishsane