Awk 将包含多个列的文件读入包含一列的文件的脚本
例如,如果我有一个文件,如下所示:Awk 将包含多个列的文件读入包含一列的文件的脚本,awk,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 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
因为我们更改了OFS,我们需要通过将第一个字段设置为自身来重建行,这将强制重建$1=$1
至少我们需要一个打印行的真实条件1
- 与
sed
:
TMP$ sed -r 's/ +/\n/g' File
1
2
3
4
5
6
7
8
9
10
11
12
用换行符替换所有连续空格。朴素的AWK方法:
#!/usr/bin/awk -f
{ for (i = 1; i <= NF; i++) print $i; }
#/usr/bin/awk-f
{for(i=1;我能请你解释一下这个命令吗?例如-oE在grep中做什么?OFS的意思是什么?对不起,我真的是一个初学者…我更喜欢awk命令,最近我发现它在我的工作中非常有用…非常感谢,这个awk可以完成我的工作,我会弄明白它的意思或这句话…@Sky我在我的回答中添加了解释谢谢!我会的我试着在awk上做更多的工作。看到了吗:?谢谢!但是这会在不同列的数据之间创建一个空行。awk'OFS=“\n”{$1=$1}1'给出一个没有空行的列。这可能是因为每一行都以一个或多个空格结尾…但是你的行更容易阅读…谢谢!