1

開始フォルダーがテストであるフォルダー構造があります。test には 2 つのフォルダーがあります。test1 と test2、および一連のファイル。これらの一連のファイルだけでなく、test1 と test2 のファイルにも歓迎の言葉があります。これを試してみましたが、うまくいきませんでした

sed 's/\<welcome\>//g' **/*

私は何を間違っていますか?これはどのように行うことができますか?

4

4 に答える 4

4

これはうまくいくかもしれません(GNU sed):

find test -type f -exec sed -i '/welcome/d' '{}' \;
于 2012-10-23T00:21:38.573 に答える
1
find . -type f|xargs perl -ni -e 'print unless(/<welcome>/)'
于 2012-10-23T12:31:23.293 に答える
1

これをやってみてください(GNU sed):

sed -i '/welcome/s/\<welcome\>//g' test/*

-iスイッチはファイルを変更するので、注意してください。

-iUnix で switch がサポートされていない場合:

for i in test/*; do
    sed '/welcome/s/\<welcome\>//g' "$i" > /tmp/.sed && mv /tmp/.sed "$i"
done
于 2012-10-22T22:50:06.497 に答える
1

sed -e 's/welcome//g' test > test2

ファイル test には、 welcomeを含むいくつかのエントリがあります。上記の sed 行は、テストからウェルカムを削除します。

あなたはそれをループに入れることができます..そして、スプートニックがあなたの質問に大部分答えていることがわかりました!:P

于 2012-10-22T22:55:35.520 に答える