假设我有这样的表:
This is first line
name minimum maximum config_value
----------------------------------- ----------- ----------- ------------
some text goes here for sample 0 1 0
Output Ends
输出应该类似于第二列:
minimum
-----------
0
生成这样的输出的 awk 命令是什么?
答案1
如果awk
不是实质性要求,您可以将cut
文件分成固定字节(并grep
去掉空行):
cut -b 37-47 data | grep -v '^$'
答案2
我不是 awk 大师,但如果您的输出始终相同(我的意思是,第二行是标题,第三行包含结果),您可以使用如下内容:
cat /tmp/test.txt | awk 'NR==2 {headers=$0; start=0; len=0} NR==3 { start=index($0," "); len=length($2)+1; print substr(headers,start,len) ; print substr($0,start,len)} NR==4 {print substr($0,start,len)}'
由于它是长度分隔字段,因此您可以通过读取“下划线”行 ( NR==3
) 来获取字段的起始索引和长度。
如果您的 SQL 返回不止一行,那么您必须使用类似if( NR > 1 && NR <= x )
.