linux - 在文本文件的指定字段中提取包含单词的行

标签 linux bash shell

我在从文件文本中提取数据时遇到一些问题,我将向您展示一个示例。

这是文本文件的格式:

John England A
Kyle Canada P 
Ash France P
Alex Italy C
Simon Germany C
Thomas Netherlands P

现在我需要做的是,在字段 1 上按字母顺序排序后,只选择具有特定第三字段的字段,如 P,并将它们放入另一个 .txt 文件中。

这将是新文件的正确输出:

Ash
Kyle
Thomas

如您所见,它们是按字母顺序排序的,只有第三个字段值为 P 的才会放入新文件中。

这是我的结论:

cut -d ' ' -f1 file1.txt | sort

基本上只是选择第一个字段并按字母顺序对其进行排序,我无法解决的是现在如何只选择具有 P 作为第三个字段值的字段(不更改刚刚创建的顺序)。

感谢任何愿意提供帮助的人。

最佳答案

您可以为此使用 awk:

awk '$3=="P"{print $1}' file1.txt | sort > file2.txt

或者使用grep:

grep ' P$' file1.txt | sort

关于linux - 在文本文件的指定字段中提取包含单词的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58597188/

相关文章:

linux - Matlab(Linux): mp4 video loading

linux - 如何在 Linux 中停止/禁用 IPI(进程间中断)?

linux - 如何在 bash 中读取带有冒号的文本文件

bash - 有没有办法从脚本中将所有 stdout 和 stderr 重定向到 systemd 日志?

bash - 如何在 Bash 中获取目录名的最后一部分

c++ - 在C++中捕获shell脚本退出状态

c++ - SDL_PollEvent 导致屏幕在 xset dpms force off 后唤醒

java - 基于两列对大文件进行排序

python csv 到嵌套列表,计数器

bash - 在一行上打印 shell 环境函数