我必须在文本文件中将字符串“.htm”替换为“.html”,如果它放在行尾。我应该使用 sed 但我不知道如何使用它。我尝试使用 grep 但是没有用。
答案 0 :(得分:2)
使用此:
sed 's/\.htm$/.html/' file
只要跟随行尾(.htm
),它就会查找$
(必须转义点)。在这种情况下,它将其替换为.html
。
如果您想进行就地编辑,请添加-i
选项:
sed -i.bak 's/\.htm$/.html/' file
这将创建备份file.bak
,同时将使用新数据修改原始文件。
$ cat a
hello this is.htm
hello this is.htm blabla
hello this ishtm
hi!
$ sed 's/\.htm$/.html/' a
hello this is.html
hello this is.htm blabla
hello this ishtm
hi!
答案 1 :(得分:0)
sed -e 's/\.htm$/\.html/' < foo
假设foo是您要操作的文件。我们将输出标准输出,将其重定向到有用的地方。
答案 2 :(得分:0)
或执行以下操作:
1)在vi编辑器中打开文件:vi filename 2)进入命令模式:按: 3)键入以下命令并按Enter:1,$ s / .htm $ / .html /
正如其他帖子所建议的那样,使用sed命令可以获得相同的结果,但在这种情况下,您无法在现有文件中进行更改。 Instaed您必须创建一个新文件。使用上述解决方案,您可以在现有文件中进行更改。
希望有所帮助!!