[英]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.