我的程序打印当前目录中每个文件的偶数行:
for file in . *
do
awk 'NR % 2 == 0' "$file"
done
我希望它打印文件名,后跟输出中每行前的冒号。我找不到在awk命令完成工作时插入任何内容的方法。使用 awk 不可能做到这一点吗?提前感谢您的任何建议。
awk
支持包含文件名的FILENAME
变量。你甚至不需要外壳循环。只是:
awk 'NR % 2 == 0 {printf "%s:%sn", FILENAME, $0}' *
这个怎么样?
IFS=$'rn'
for file in . *
do
for line in `awk 'NR % 2 == 0' "$file"`
do
echo $file: $line
done
done