如何使用sed修改带有新行的空白行

时间:2017-06-20 17:14:37

标签: shell unix sed

我想使用sed命令在此文件的所有空白行中插入单词“NO”

function add<T extends (number | string)>(v1: T, v2: T): T {
    return <any>v1 + <any>v2;
}

// Valid uses:
add(1, 2);
add('a', 'b');
add<number>(1, 2);
add<string>('a', 'b');

// Errors:
add(1, 'a');
add(true, false);
add<number>('a', 'b');
add<string>(1, 2);

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

1234
124
12453
12463
13442
3462



421532
124135

12

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

3 个答案:

答案 0 :(得分:2)

POSIX [:blank:]仅表示空格和制表符,而不是空行。同样在正则表达式的情况下,您应该使用[[:blank:]]

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

如果您只想用NO替换带有空格或制表符的空行/行,请使用此

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

答案 1 :(得分:1)

使用sed:

将空行替换为NO

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

  • ^ - 线路的开始
  • $ - 行尾
  • [:blank:] * - 0个或更多空白字符

答案 2 :(得分:0)

使用锚点替换以NO开头和结尾的换行符。

sed 's/^$/NO/' inputfile.txt > outputfile.text