例如,有一个名为 tmp.dat 的数据文件,其中的数据是这样的形式:
x1 x2 x3 x4 x5 x6 x7
. . . . . . .
我的目标是只提取 x3 和 x4 这两列。
我怎样才能使用 awk 的命令来做减少工作?
我知道使用带有开放命令的 C/C++ 的方法,但它很麻烦。
例如,有一个名为 tmp.dat 的数据文件,其中的数据是这样的形式:
x1 x2 x3 x4 x5 x6 x7
. . . . . . .
我的目标是只提取 x3 和 x4 这两列。
我怎样才能使用 awk 的命令来做减少工作?
我知道使用带有开放命令的 C/C++ 的方法,但它很麻烦。
尝试这个:
awk '{print $3,$4}' tmp.dat
你的意思是这样吗?
cut -d' ' -f3,4 tmp.dat
琐碎的:
$ awk '{print $3,$4}' file
你做过研究吗?
cut
并且awk
是您最好的选择。以下是您的做法bash
:
while read -ra line; do echo "${line[2]} ${line[3]}"; done < tmp.dat
perl -lane 'print "@F[2,3]"' your_file
GNU sed的代码:
$ echo x1 x2 x3 x4 x5 x6 x7|sed -r 's/(\S+\s+){2}(\S+\s+\S+).*/\2/' x3 x4
\S+\s+
大约是$x
(awk)。