我想创建一个脚本,该脚本获取任何命中它的管道输出(此脚本将始终是最后一个脚本运行),将其保存到临时文件,然后删除临时文件作为脚本的最后一行。
例:
cat blah | ./scripta.sh | ./anotherscript.sh | ./yetanotherscript |./finalscript
问题是我们并不总是一次运行所有脚本。 曾经可能是这样的:
cat blah | ./anotherscript.sh | ./finalscript.sh
或
cat blah | ./anotherscript.sh | yetanotherscript.sh | ./finalscript.sh
等。。。
脚本在获取该数据后,作为名为moo的文件将像这样处理它
awk < moo 'NR%20==0 {print "nYear Eng Disp. Cyl City FE Hwy FE Modeln" } {print} END{ print "total lines: " NR}'
是否允许然后添加
rm -r filepathtowhereismoo
作为最后一行?
默认情况下,'awk' 实用程序从标准输入读取,所以你可以把它放在一个 shell 脚本中:
#!/bin/bash
awk 'NR%20==0 {print "nYear Eng Disp. Cyl City FE Hwy FE Modeln" } {print} END{ print "total lines: " NR}'
您甚至可以编写一个可执行的awk脚本并管道到该脚本:
#!/usr/bin/awk
NR%20==0 {
print "nYear Eng Disp. Cyl City FE Hwy FE Modeln"
}
{
print
}
END {
print "total lines: " NR
}
使用这种方法,听起来好像您不需要任何类型的临时文件。 但是,如果您这样做了,您也可以这样做:
#!/bin/bash
cat > /tmp/tmpfile.txt
# Do some things with the file.
rm /tmp/tmpfile.txt