【发布时间】:2016-03-04 05:36:00
【问题描述】:
我需要编写一个 sed 脚本, 在以“/”开头并以“/”结尾的所有行中,任何出现的“perl”到“PERL”。 我可以使用 if 语句吗?
if(行以 /* 开头 & 以 */ 结尾) 用 PERL 替换 perl
这是我的提示
编写一个 sed 脚本,它将执行以下所有操作:
(a) 将所有空白(空格和制表符)减少到一个空格,
(b) 删除所有空白行(没有非空白字符)和
(c) 将所有以“/”开头并以“/”结尾的行(* 不代表通配符)将任何出现的“perl”更改为“PERL”
这是我目前所拥有的
s/^[ ]*$/ /g
/^$/d
我完成了a和b部分,我不知道如何做c部分
【问题讨论】:
-
你试过什么?
sed没有“if”语句。这不是那种语言。 -
sed '/^\/.*\/$/s/perl/PERL/g'? -
真的需要 sed 吗?您想要以
/或/*开头的行吗?hyperlink应该变成hyPERLink吗?I am trying to write this in a script, not on the command line.到底是什么意思?编辑您的问题以包含一些简洁、可测试的示例输入和预期输出,并包含您不希望更改的案例(如果有的话)。 -
@ghoti 的答案比当前的两个答案快了近半小时,这有点好笑,是一个更好、更便携的答案(不依赖于 GNU)...
标签: sed substitution