我有一堆包含標記-filename-的文本文件。我需要用文件的真實路徑和文件名替換它。用文件名替換文本中的標記
那是什麼我到目前爲止有:
grep的-lr -e '-filename-' * .TXT | xargs的SED -i 的/ -filename-/therealname/G'
有沒有辦法與文件的名稱,以取代therealname?
我有一堆包含標記-filename-的文本文件。我需要用文件的真實路徑和文件名替換它。用文件名替換文本中的標記
那是什麼我到目前爲止有:
grep的-lr -e '-filename-' * .TXT | xargs的SED -i 的/ -filename-/therealname/G'
有沒有辦法與文件的名稱,以取代therealname?
就多做一點的bash福
for x in *.txt; do
sed -i "s/-filename-/$x/g" $x;
done
當然,新行只是爲了清楚起見。隨意將其塞進一行。
像
for f in $(grep...) ; do sed -i "s,-filename-,$f,g" $f ; done
你是什麼意思?
與xargs
它會是這樣的。
grep ... | xargs -I% -n 1 sed -i "s,-filename-,%,g" %
for f in YOUR_FILE_LIST_MASK ; do
sed -i "s:-filename-:${f}" ${f}
done
可以做到這一點。