[英]Print a column in awk if it matches, if not then still print the line (without that column)
我正在嘗試使用awk進行一些過濾,但目前遇到了問題。 我可以使awk匹配正則表達式並打印帶有列的行,但是我不能使其不帶有列的行打印。
awk -v OFS='\\t' '$6 ~ /^07/ {print $3, $4, $5, $6}' file
目前是我所擁有的。 如果正則表達式不匹配,我可以用awk打印不帶第六列的行嗎?
如果正則表達式不匹配,則將$6
設置$6
空字符串。 就如此容易。 應該這樣做:
awk -v OFS='\t' '{ if ($6 ~ /^07/) { print $3, $4, $5, $6 } else { $6 = ""; print $0; } }' file
請注意, $0
是整行,包括$2
(您似乎沒有使用過)。 它將打印除第六列以外的每一列。
如果您只想在不存在匹配項時打印$3
, $4
和$5
,請改用此命令:
awk -v OFS='\t' '{ if ($6 ~ /^07/) print $3, $4, $5, $6; else print $3, $4, $5 }' file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.