linux从几个文件中获取特定字段

时间:2016-03-11 11:54:00

标签: linux file get field

我有几个以字符串“file”开头的文件,然后是一个数字(file1,file2等)。

这些文件的内容类似,看起来像这样

for (int i = 0; i < students.size(); i++){    
    students.get(i) // now you can do whatever you want with the i'th student
}

对于每个文件,我只想保留元素的索引和坐标后面的2个数字字段(在同一个文件或另一个文件中):

文件1:

file1:
$xx_ at 10.0 "$elt_(0) coordinates 636.46 1800.37 9.90"
$xx_ at 10.0 "$elt_(1) coordinates 367.78 1263.63 7.90"

我试图做的就是这样(但这不正确)

0  636.46 1800.37 
1 367.78 1263.63 

1 个答案:

答案 0 :(得分:1)

这是awk的完美用法。 使用awk,您只需打印特定的单词即可。

如果索引是行号,您可以使用:

cat -n ./file1 | awk '{print $1 -1 " " $7 " " $8}'这只是用行号打印文件并打印第一,第七和第八个单词。

如果索引是括号中的$elt_(0)号,您可以像这样使用sed:

cat ./file1 | awk '{print $4 " " $7 " " $8}' | sed 's/"$elt_(//g' | sed 's/)//g' | sed 's/"//g'

输出:

1 636.46 1800.37
2 367.78 1263.63

Link to awk Link to sed