awk + ​​仅当第一个字段以字符串开头(如 Linux1)时打印行

awk + ​​仅当第一个字段以字符串开头(如 Linux1)时打印行

如果第一个字段以 Linux1 开头,如何打印该行

例如:

  echo Linux1_ver2  12542 kernel-update  |   awk '{if ($1 ~ Linux1 ) print $0;}'

目标是打印该行,而第一个字段以 Linux1 开头

行的示例:

Linux1-new  36352 Version:true
Linux1-1625543  9847
Linux1:16254 8467563 

备注 - 空格或 TAB 可以在第一个提交之前

答案1

awk 在分配字段时忽略前导空格。默认命令是打印。

awk '$1 ~ /^Linux1/'

就是你想要的。

详细解释:

  • $1 告诉 awk 查看第一“列”。
  • ~ 告诉 awk 进行正则表达式匹配 /..../ 是正则表达式。
  • RE 中包含字符串 Linux 和特殊字符 ^。
  • ^ 导致 RE 从头开始​​匹配(而不是匹配行中的任何位置)。

一起来看:awk 将匹配第一列开头带有“Linux”的正则表达式。

答案2

单程:

echo "Linux1_ver2  12542 kernel-update"  |  awk '$1 ~ /^ *Linux1/'

答案3

这应该适用于这个特定情况。

awk '/^[[:blank:]]*Linux1/ {print}'

相关内容