有没有办法使用sed
命令 this 在行首搜索特殊字符,将其替换为另一个特殊字符,然后仅将特殊字符附加到该行?
我做了一些挖掘,浏览了一些论坛,并尝试了解sed
.看起来我确实必须对特殊字符做点什么。我正在使用该sed
命令附加以 a 开头的行[
并添加 a,]
但它不执行任何操作。我想我还缺少一些东西。另一个问题是它依赖于另一个sed* that replaces a
// for a
[`。
查找并替换:
sed -e 'y#//#[#'
这会返回一个错误:
sed: -e expression #1, char 7: strings for `y' command are different lengths
附录:
sed -e "/^'['/s/$/']/g"
我创建了该文件的副本,并使用文本编辑器进行了查找和替换,将 // 更改为 [ 但是此命令不会返回任何结果,并且不会将字符添加到末尾。
我认为我仍然缺少一些使这些命令正常工作的东西,并且不确定是否有办法可以将它们组合成一个命令。
答案1
据我所知,你想要什么,这个 sed 命令应该可以做到。它使用“s”命令,而不是“y”:
第一个 sed 命令(直到分号)将 // 的任何实例替换为 [
第二个 sed 命令查找以“[”开头的行并在末尾添加“]”
echo -e "hello//goodbye\nhello[goodbye\n//hello_and_goodbye\n[hello_and_goodbye"|\ sed 's~//~[~g;/^\[/s~$~]~'