我的文件包含第30行的文字:
Icon="\<some path which we do not know\icon.png"
我想用以下内容替换:
Icon="\home\user\Img\Icons\icon.png"
最好的方法是什么。?
感谢。
答案 0 :(得分:2)
最佳方式:
perl -pi -e 's/\\<some path which we do not know/\\home\\user\\Img\\Icons/' text.txt
由于Unix的兼容性,Perl方法比sed更受欢迎。
答案 1 :(得分:1)
您可以使用编辑器手动执行此操作,或者如果您希望以非交互方式执行此操作,则可以使用小型shell管道并sed
。
sed `3 s/big path/custom path/` input_file.txt
其中3
是行号,big path
是您要替换的内容,custom path
是您要替换它的内容。 input_file.txt
是您的输入文件。这会将替换的文件打印到屏幕上,您可以使用>
运算符将其重定向到另一个文件。
作为一个具体的例子,假设我有这个文件(input_file.txt
)
Header
Random test
/bad/path/to/some/directory/icon.png
/bad/path/to/some/directory/icon.png
Footer
现在我要按照这样的方式运行我的命令。
cat input_file.txt | sed '4 s/\/bad\/path\/to\/some\/directory\//\/home\/noufal\//'
我得到了
Header
Random test
/bad/path/to/some/directory/icon.png
/home/noufal/icon.png
Footer
请注意,它仅更改了第4行。命令中的额外\
个字符用于转义/
字符,该字符对sed
具有特殊含义。
答案 2 :(得分:0)
您可以使用vim查找和替换字符串http://vim.wikia.com/wiki/Search_and_replace或使用'sed'命令