【发布时间】:2018-09-20 13:12:04
【问题描述】:
我想替换所有子目录内所有文件中的一个单词,满足一些条件。
下面是详细的情况。
我必须替换所有不区分大小写的单词,例如 {classy, CLASSY, cLassy ,..} 到“Vintage”这个词。我也只需要 将其替换为不区分大小写的单词“insert”或“INSERT”。
所以如果我有 2 个文件具有以下内容。
File1.txt
asd asdsd INSERT asdasd classy
asddsdff sdf sdff sdf CLASSY
sfre asfert asdd asd insert asdgweg
qwe asfer wrererw werer wewer INSERT CLassy
File2.txt
fhfgh asdsd insert asdasd ClASSY
asddsdff dfg sdff sdf CLASSY
sdgg asfert dfg asd insert asdgweg CLASSY
qwe asfer wrererw werer wewer INSERT
我想把这两个文件的内容都改成
File1.txt
asd asdsd INSERT asdasd Vintage
asddsdff sdf sdff sdf CLASSY
sfre asfert asdd asd insert asdgweg
qwe asfer wrererw werer wewer INSERT Vintage
File2.txt
fhfgh asdsd insert asdasd Vintage
asddsdff dfg sdff sdf CLASSY
sdgg asfert dfg asd insert asdgweg Vintage
qwe asfer wrererw werer wewer INSERT
以下是我使用的命令,但它不能正常工作。你能帮我理解这个问题吗?
find /rootFolderPath -name "*.txt" | xargs grep -i insert -exec sed -i -e 'classy/Vintage/I' -- {} +
【问题讨论】:
-
@Yunnosch 抱歉打错了.. 我现在已经修正了
标签: regex linux shell sed find