就像主题一样。假设我有一个文件,其中包含:
*aaa 美国广播公司
防御 55
*CCC ABC
瑞特 33
我想知道是否可以做出这样的声明:如果 $1=="*aaa",则从下一行打印 $4。我知道解决方案之一可能是将文件转换为以下输出:
*aaa ABCDEF 55
*ccc ABCRET 33
使用“*”作为行分隔符,但我想避免这种情况。
问候,卢卡斯
答案1
使用一个变量(primed
在示例中称为),如果找到匹配项,则设置该变量。next
如果设置了 primed,则该语句读取下一行,然后打印该行。
awk '{
if (primed) print $4;
if ($1 == "*aaa") { primed=1; next } primed=0; }' file