Bash
遞歸查找和替換文本文件中的單詞
我有一個文件夾樹,在這些文件夾中有許多文本文件。這些文件具有相同的名稱“log.txt”和相同的格式。例如,在每個文件中,我們可以看到多行,例如:
date name . . .
如何使用該命令
find
在此文件夾樹中查找所有文本文件“log.txt”,然後將每個文本文件中的“日期”一詞替換為“約會”一詞?
假設您目前位於樹根中(否則將 ‘.’ 替換為目錄名稱)。您可以將 ’log.txt’ 替換為 ‘*.txt’ 或任何你想要的。
find . -type f -name 'log.txt' -exec sed -i 's/date/dating/g' {} \;
您可以從目錄的根目錄使用
find
andsed
:find . -type f -name 'log.txt' -exec sed -i 's/^date$/dating/' {} +
find . -type f -name 'log.txt'``log.txt
將遞歸查找所有文件- 在 , 的
-exec
謂詞內find
,sed -i 's/^date$/dating/' {} +
將date
在一行文件中用dating
, 替換。