如何从分隔类型文件中的特定行打印特定字段

时间:2012-07-24 06:48:15

标签: file bash shell csv awk

我有一个已排序,分隔的类型文件,我想在特定行中提取特定字段。

这是我的输入文件:somefile.csv

efevfe,132143,27092011080210,howdy,hoodie
adfasdfs,14321,27092011081847,howdy,hoodie
gerg,7659876,27092011084604,howdy,hoodie
asdjkfhlsdf,7690876,27092011084688,howdy,hoodie
alfhlskjhdf,6548,27092011092413,howdy,hoodie
gerg,769,27092011092415,howdy,hoodie
badfa,124314,27092011092416,howdy,hoodie
gfevgreg,1213421,27092011155906,howdy,hoodie

我想提取27092011084688(来自第4行第3列的值)。

我使用awk 'NR==4',但它给了我整整第4行。

5 个答案:

答案 0 :(得分:5)

相当简单:

awk -F',' 'NR == 4 { print $3 }' somefile.csv

使用,作为字段分隔符,取记录编号4并在somefile.csv中打印字段3。

答案 1 :(得分:3)

$ sed -n "4p" somefile.csv | cut -d, -f3

修改

这是什么?

  • -n正常输出
  • 4p打印第4行
  • -d,使cut使用,作为分隔符
  • -f3cut打印第3个字段

答案 2 :(得分:2)

使用awk的一种方式:

awk -F, 'NR==4 { print $3 }' file.txt

答案 3 :(得分:1)

使用以下内容:

awk -F ',' 'NR==4 {print $3}'

答案 4 :(得分:0)

perl替代csv文件中第4行的print element 3:

perl -F, -lane 'print $F[2] if $. == 4' somefile.csv