如果第一个字段以 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}'