簡體   English   中英

在文本文件的指定字段中提取包含單詞的行

[英]Extracting lines containing a word in a specified field of text file

我在從文件文本中提取數據時遇到了一些問題,我將向您展示一個示例。

這是文本文件的格式:

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

現在我需要做的是,在字段 1 上按字母順序對它們進行排序后,然后僅選擇具有特定第三個字段(如 P)的字段,並將它們放入另一個.txt 文件中。

這將是新文件的正確 output:

Ash
Kyle
Thomas

如您所見,它們按字母順序排序,只有第三個字段值為 P 的那些才會放入新文件中。

這就是我的目的:

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

它基本上只是選擇第一個字段並按字母順序對其進行排序,我無法解決的是現在 select 僅具有 P 作為第三個字段值的那些(不更改剛剛創建的順序)。

感謝任何會提供幫助的人。

您可以為此使用awk

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

或使用grep

grep ' P$' file1.txt | sort

這是一個grep 'n' cut 'n' sort檢查行是否以P結尾:

$ grep "P$" file | cut -d \  -f 1 | sort
Ash
Kyle
Thomas

如果您想在第三個字段中使用P ,請使用:

$ grep "^[^ ]\+ [^ ]\+ P$" file | cut -d \ -f 1 | sort

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM