簡體   English   中英

在Linux終端中使用awk命令忽略重復嗎?

[英]Using the awk command in linux terminal to ignore repeats?

因此,我正在開發一個程序,該程序需要使用awk函數掃描具有引起麻煩的格式的文件。

基本上,我遇到的麻煩是我不想重復。 例如,文件如下所示:

abcd
abcde

我逐行搜索字符串“ abcd”,我只希望它給我第一行,而不是兩者。 有什么我可以添加到awk函數中的功能,以便它可以搜索我正在尋找的東西,僅此而已?

如果這個問題愚蠢,我深表歉意,但是我真的找不到解決在線問題的方法,而從我所學到的關於awk的內容來看,我找不到解決問題的方法。

不幸的是,我也根本無法編輯文件。

謝謝您的幫助!

你可以做:

awk '/^abcd$/' file

或者你可以做

awk '$0=="abcd"' file

或者如果它的第二個字段只需要是abcd而不是abcde

awk '$2=="abcd"' file

所有這些將僅匹配abcd而不匹配abcde

換一種方式,

awk '/(^| )abcd( |$)/' file

它打印包含字符串abcd的行,該字符串前面有一個空格或開始模式,然后是一個空格或結束模式。

說明:

  • (^| )匹配行的開頭空格。
  • abcd匹配文字abcd
  • ( |$)匹配空格或行尾。
  • | 稱為邏輯或運算符。

如果一行與上述圖案匹配,則它將被打印。 您無需指定'{print}' AWK會自動執行。

暫無
暫無

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

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