有没有可能这样做:
$ cat foo.txt
1 2 3 4
foo bar baz
hello world
$ awk '{ for(i in $){ print $[i]; } }' foo.txt
1
2
3
4
foo
bar
baz
hello
world
我知道你可以这样做:
$ awk '{ split($0,array," "); for(i in array){ print array[i]; } }' foo.txt
2
3
4
1
bar
baz
foo
world
hello
但是结果并不是很好。
发布于 2011-08-09 22:08:45
我自己发现的:
$ awk '{ for(i = 1; i <= NF; i++) { print $i; } }' foo.txt
发布于 2011-08-09 22:09:29
我会使用sed:
sed 's/\ /\n/g' foo.txt
发布于 2017-09-07 22:59:53
不需要awk
、sed
或perl
。您可以直接在shell中轻松完成此操作:
for i in $(cat foo.txt); do echo "$i"; done
https://stackoverflow.com/questions/6997430
复制相似问题