2011-12-22 72 views
3

我有一堆包含標記-filename-的文本文件。我需要用文件的真實路徑和文件名替換它。用文件名替換文本中的標記

那是什麼我到目前爲止有:

grep的-lr -e '-filename-' * .TXT | xargs的SED -i 的/ -filename-/therealname/G'

有沒有辦法與文件的名稱,以取代therealname

回答

4

就多做一點的bash福

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

當然,新行只是爲了清楚起見。隨意將其塞進一行。

1

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

你是什麼意思?

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 

可以做到這一點。