2011-12-22 17 views
3

トークン-filename-を含むテキストファイルがたくさんあります。ファイルの実際のパスとファイル名で置き換える必要があります。私がこれまで持っているもの厥テキスト内のトークンをファイル名で置き換えます。

はgrep -L-R -E '-filename-' * .TXT | xargsのSED -i さん/ -filename-/therealname/G '

ファイルの名前でtherealnameを交換する方法はありますか?

for f in $(grep...) ; do sed -i "s,-filename-,$f,g" $f ; done 

よう

答えて

4

ただ、もう少しのbash-FUを行う

for x in *.txt; do 
    sed -i "s/-filename-/$x/g" $x; 
done 

、改行は単に明確にするためです。それを1つの行に詰め込んでください。

1

あなたはどういう意味ですか?

xargsでは、このようになります。もちろん

grep ... | xargs -I% -n 1 sed -i "s,-filename-,%,g" % 
0
for f in YOUR_FILE_LIST_MASK ; do 
    sed -i "s:-filename-:${f}" ${f} 
done 

でも可能です。