Shell 如何使用sed用新行修改空行 我想用SED命令在这个文件中的所有空行中插入“不”一词。 1234 124 12453 12463 13442 3462 421532 124135 12

Shell 如何使用sed用新行修改空行 我想用SED命令在这个文件中的所有空行中插入“不”一词。 1234 124 12453 12463 13442 3462 421532 124135 12,shell,unix,sed,Shell,Unix,Sed,我正在尝试此命令,但我不确定它为什么不起作用: sed '/'[:blank:]'/ c\ NO' inputfile.txt > outputfile.text 不使用sed命令会更容易吗?将空行替换为不使用sed: sed的/^[:blank:][]*$/NO/'inputfile.txt>outputfile.text ^-排队 $-行尾 [:blank:::*-0个或多个空白字符 使用锚点替换以不带换行符的换行符开头和结尾的行 sed 's/^$/NO/' inputfile.

我正在尝试此命令,但我不确定它为什么不起作用:

sed '/'[:blank:]'/ c\ NO' inputfile.txt > outputfile.text

不使用sed命令会更容易吗?

将空行替换为不使用sed:

sed的/^[:blank:][]*$/NO/'inputfile.txt>outputfile.text

  • ^-排队
  • $-行尾
  • [:blank:::*-0个或多个空白字符

使用锚点替换以不带换行符的换行符开头和结尾的行

sed 's/^$/NO/' inputfile.txt > outputfile.text
仅表示空格和制表符,不表示空行。对于正则表达式,也应该使用
[[:blank:][]

sed 's/[[:blank:]]/NO/' inputfile.txt > outputfile.text
如果您只想用空格或制表符替换空行/空行,请使用此选项

sed 's/^[[:blank:]]*$/NO/' inputfile.txt > outputfile.text

是否
空行
始终不包含任何内容,或者仅包含空格的行也被视为
空行
?适用于空行。“以换行符开头和结尾的行”这句话有误导性:在
sed
的上下文中,默认情况下,一行是换行符之间的内容,因此它本身不包含它们<代码>^匹配当前行(模式空间)的开头,并匹配其结尾。换句话说:
^$
匹配一行空字符串。