例如,如果我有一个文件如下:脚本读取与许多列的文件到一个文件中有一列
1 2 3 4 5 6
7 8 9 10 11 12
而且我希望重新组织该文件为:
1
2
3
4
5
6
7
8
9
10
11
12
我可以使用awk
命令吗?
例如,如果我有一个文件如下:脚本读取与许多列的文件到一个文件中有一列
1 2 3 4 5 6
7 8 9 10 11 12
而且我希望重新组织该文件为:
1
2
3
4
5
6
7
8
9
10
11
12
我可以使用awk
命令吗?
有多种方法可以实现这一点。
随着grep
:
grep -oE "[0-9]+" file
-o
标志只打印匹配模式(在这种情况下,数字),由换行-E
激活扩展正则表达式定界。随着awk
:
awk 'OFS="\n"{$1=$1}1' file
OFS
定义了输出字段分隔符。$1=$1
因为我们改变了OFS,我们需要通过将第一个字段设置为自身来重建该行,这将强制重建。1
至少我们需要一个真正的条件,即行被打印。随着sed
:
TMP$ sed -r 's/ +/\n/g' File
1
2
3
4
5
6
7
8
9
10
11
12
与换行符替换所有连续的空间。
谢谢!但是这个表扬将在不同栏目的数据之间创建一条空行。 awk'OFS =“\ n”{$ 1 = $ 1} 1'给出一列没有任何空行。 – Sky
这可能是因为每一行都以一个或多个空格终止... –
天真AWK方法:
#!/usr/bin/awk -f
{ for (i = 1; i <= NF; i++) print $i; }
混沌的方法可能是更有效的。
但您的阅读起来更容易......谢谢! – Sky
看到这个:[我试图创建一个文件集合的单词字典。有没有简单的方法来打印文件中的所有单词,每行一个?](http://stackoverflow.com/questions/1123572/extract-words-from-a-file)? – pelumi