簡體   English   中英

awk格式以打印具有特定列的行

[英]awk format to print lines with specific columns

我只想打印第3列或第 4列和第 2列中具有特定字符串的行,例如“ fgfgfg”,以fg開頭我正在使用以下命令,但它還會打印沒有以fg作為開頭字符的行第2列?

 awk '{if (($3 == "fgfgfg" || $4 == "fgfgfg") && $2 ~ /fg/) print $0}' file_name

必須條件是$ 2列必須以'fg'開頭,我還想添加一個條件,即第2列以fg開頭,后跟5位數字? 任何幫助,請!

要確保第2列以fg開頭,您需要使用:

$2 ~ /^fg/

注意^ 這是錨的開始 如果省略它,則正則表達式將在字符串中的任何位置匹配fg

順便說一句,您可以簡化命令:

awk '(($3 == "fgfgfg") || ($4 == "fgfgfg")) && $2 ~ /^fg/' file
 awk '(($3 == "fgfgfg") || ($4 == "fgfgfg")) && ($2 ~ /^fg[0-9]{5}/)' file_name

暫無
暫無

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

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