我的文本文件包含许多以空格分隔的单词(字符串)。如何用换行符替换空格。换句话说,如何将每个字符串放在sed
的不同行?如果还可以使用*.rs
建议一种方法,我将非常感激!
答案 0 :(得分:2)
使用命令:
sed -i.bak -e 's/\s\+/\n/g' file
\s
将匹配任何空白字符(空格,制表符,换行符),\+
将匹配一行中的一个或多个匹配项。 -i.bak
会将原始文件备份到file.bak
。
答案 1 :(得分:2)
文件bla:
a b c d e
使用sed:
sed 's/\s\+/\n/g' bla
结果:
a
b
c
d
e
答案 2 :(得分:1)
$ cat foo
a b c
1 2 3
在Gnu awk(和mawk):
$ awk -v RS=" +|\n" '{print $0}' foo
a
b
c
1
2
3
将tr
用于一行:
$ tr -s \ '\n' <<< "a b c"
a
b
c
答案 3 :(得分:0)
更多方法:
$ cat ip.txt
foo bar baz
a 433 5er
cat fog try
使用xargs
$ xargs -n1 < ip.txt
foo
bar
baz
a
433
5er
cat
fog
try
使用grep
$ grep -o '[^ ]*' ip.txt
foo
bar
baz
a
433
5er
cat
fog
try
答案 4 :(得分:0)
如果Perl是一个选项:
echo "a b c d e" | perl -pe 's/\s+/\n/g'