開始フォルダーがテストであるフォルダー構造があります。test には 2 つのフォルダーがあります。test1 と test2、および一連のファイル。これらの一連のファイルだけでなく、test1 と test2 のファイルにも歓迎の言葉があります。これを試してみましたが、うまくいきませんでした
sed 's/\<welcome\>//g' **/*
私は何を間違っていますか?これはどのように行うことができますか?
これはうまくいくかもしれません(GNU sed):
find test -type f -exec sed -i '/welcome/d' '{}' \;
find . -type f|xargs perl -ni -e 'print unless(/<welcome>/)'
これをやってみてください(GNU sed
):
sed -i '/welcome/s/\<welcome\>//g' test/*
-i
スイッチはファイルを変更するので、注意してください。
-i
Unix で switch がサポートされていない場合:
for i in test/*; do
sed '/welcome/s/\<welcome\>//g' "$i" > /tmp/.sed && mv /tmp/.sed "$i"
done
sed -e 's/welcome//g' test > test2
ファイル test には、 welcomeを含むいくつかのエントリがあります。上記の sed 行は、テストからウェルカムを削除します。
あなたはそれをループに入れることができます..そして、スプートニックがあなたの質問に大部分答えていることがわかりました!:P