从文件中提取两个值


1

我想从一系列.txt文件中提取两个值。

这是我的.txt文件的最后两行(第49行和第50行)

1  13593 3434 2.2585  0.9
2   3333  333 3.7118  0.8

我想从每个.txt文件中提取第49行和第50行的第4列(例如2.2585和3.7118)。

有办法吗?

非常感谢


2
值始终在第四列吗?并且您想要每个.txt文件仅第49行和第50行的第4列值还是每个.txt文件第4列的所有值?
trishnendu '16

请编辑并澄清您的问题;您是否总是要从每个文件的最后两行提取值?
maulinglawns

是的,值始终位于第4列,我希望每个文本文件的第49行和第50行的第4列。
jahanvi patel

Answers:


2

您可以awk用于文本处理。以下awk语句读取文件“ input”,并在第49行和第50行的第4列打印该值。

awk'FNR == 49 || FNR == 50 {print $ 4}'输入

现在,要读取目录中的所有文件(假设所有文件都在同一目录中),您可以运行for循环以读取文件名。因此,最终的声明将像-

用于*中的文件;做awk'FNR == 49 || FNR == 50 {print $ 4}'“ $ file”; 做完了

正如 trosos所述,输入文件仅是.txt格式。所以我们可以做

awk'FNR == 49 || FNR == 50 {print $ 4}'* .txt


你可以避开for,只是做awk 'FNR>48{print $4}' *.txt
trosos

哦! 是。她已指定文件的“ .txt”格式。谢谢,我正在修改我的答案。
trishnendu '16

谢谢trishnendu,maulinglawns和trosos。效果很好!
jahanvi patel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.