我正在尝试解压缩文件夹中的文件并打印第一行 上次修改日期
但下面将打印第一行带有"-"
for file in /export/home/xxxxxx/New_folder/*.gz;
do
gzip -dc "$file" | awk 'NR=1 {print $0, FILENAME}' | awk '/LASTMODIFIEDDATE/'
done
1.如何修改上面的代码以打印解压缩的文件名。2.我是初学者,欢迎提出改进上述代码的建议
几个问题:
如果要解决第一行,则第一个awk
应具有双等号:
awk 'NR==1{...}'
您的第二个awk
只会看到第一个awk
的输出,它只显示第一行,因此除非它们是第一行,否则您不会看到任何带有 LASTMODIFIED 的行。因此,这将向您显示第一行和包含 LASTMODIFIED 的任何行。
for ...
do
echo $file
gzip -dc "$file" | awk 'NR==1 || /LASTMODIFIED/'
done
或者你可能的意思是:
for ...
do
gzip -dc "$file" | awk -v file="$file" 'NR==1{print $0 " " file} /LASTMODIFIED/'
done
这将打印第一行,后跟文件名以及包含 LASTMODIFIED 的任何行。
使用回声执行此操作。在这种情况下,您可能还想使用 grep 而不是 awk。
for file in /export/home/xxxxxx/New_folder/*.gz;
do
echo $file
gzip -dc "$file" | grep LASTMODIFIEDDATE
done