如何从分隔类型文件中的特定行打印特定字段
Posted
技术标签:
【中文标题】如何从分隔类型文件中的特定行打印特定字段【英文标题】:How can I print a specific field from a specific line in a delimited type file 【发布时间】:2012-07-22 10:57:06 【问题描述】:我有一个排序的、分隔的类型文件,我想提取特定行中的特定字段。
这是我的输入文件: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 行。
【问题讨论】:
【参考方案1】:相当简单:
awk -F',' 'NR == 4 print $3 ' somefile.csv
使用,
作为字段分隔符,取记录号4并打印somefile.csv
中的字段3。
【讨论】:
【参考方案2】:$ sed -n "4p" somefile.csv | cut -d, -f3
编辑
这是什么?
-n
正常输出圈数
4p
打印第 4 行
-d,
使cut
使用,
作为分隔符
-f3
使 cut
打印第三个字段
【讨论】:
【参考方案3】:一种使用awk
的方式:
awk -F, 'NR==4 print $3 ' file.txt
【讨论】:
【参考方案4】:使用以下内容:
awk -F ',' 'NR==4 print $3'
【讨论】:
【参考方案5】:perl
替代在 csv 文件的第 4 行打印元素 3:
perl -F, -lane 'print $F[2] if $. == 4' somefile.csv
【讨论】:
以上是关于如何从分隔类型文件中的特定行打印特定字段的主要内容,如果未能解决你的问题,请参考以下文章
如何从java中的抽象类arraylist打印特定的对象类型
如何使用AWK将包含特定字符串的行之后的行的第三列中的值打印到不同的文件?