St.*_*rio 0 linux text-processing
Ubuntu 16.04
我有一些非常大的文件,因此无法手动修改它。我想改变所有出现的
<tag1>true</tag1>
Run Code Online (Sandbox Code Playgroud)
到
<tag1>false</tag1>
Run Code Online (Sandbox Code Playgroud)
您可以使用
sed -e 's|<tag1>false</tag1>|<tag1>true</tag1>|g' -i file
Run Code Online (Sandbox Code Playgroud)
虽然我建议对文件的副本进行编辑,
sed -e 's|<tag1>false</tag1>|<tag1>true</tag1>|g' file > newfile
Run Code Online (Sandbox Code Playgroud)
并less用于检查新内容是否可以接受;IE
less newfile
Run Code Online (Sandbox Code Playgroud)
编辑:注意g模式末尾的修饰符。如果一条线上可以有多个匹配项,则这是必要的。当g存在时,这意味着一行中的所有匹配项都被替换。此外,您可以考虑只考虑而不是完整的标签
sed -e 's|>false<|>true<|g' file > newfile
Run Code Online (Sandbox Code Playgroud)
也许
sed -e 's|>[Ff]alse<|>true<|g' file > newfile
Run Code Online (Sandbox Code Playgroud)
它同时更改>false<和>False<到>true<。
使用diff上述命令之一后,您可以用来比较这两个文件。一种选择是
diff --side-by-side file newfile | less
Run Code Online (Sandbox Code Playgroud)
但如果线路很长,它就不会真正起作用。在“统一的diff”格式是常用的,
diff -u file newfile | less
Run Code Online (Sandbox Code Playgroud)
其中具有开始的行-是从file行开头的+从newfile,并用空间开始的行是共同的。
| 归档时间: |
|
| 查看次数: |
156 次 |
| 最近记录: |