我使用此命令插入一行。如果文本或文件中两个条目之间的模式中有空格,则会在新行上打印内容。它工作正常,但有时我遇到2个空格或3个空格而不是我在模式中寻找的空格,所以我得到额外的空白行。
sed "s/ /\n/g"
我想打印一个新行,只有sed在模式中找到一些东西。 我应该如何使用sed命令将1个空格或双重或三重空格视为一个替代?
答案 0 :(得分:3)
你需要一个量词:
sed "s/ */\n/g"
或
sed 's/ \+/\n/g' # With GNU sed
或
sed -r 's/ +/\n/g'
或
sed 's/ \{1,\}/\n/g'
或
sed -r 's/ {1,}/\n/g'
如果使用BSD sed,
sed 's/ */\'$'\n''/g'
或
sed -r 's/ +/\'$'\n''/g'
您也可以使用tr
:
tr -s ' ' '\n'
-s
选项在set1中挤压重复一个字符,即此示例中的' '
。
答案 1 :(得分:0)
我会做点像......
sed -e 's/\s\+/\n/g' [filename]
使用新行查找和替换一个或多个空格。