我有一个linux命令,它读取stdio并每小时生成一个简单的文件:
myapp > ~/$( date "+%Y%m%d%H.txt" )
然后,因为myapp可以读取stdio明文文件并且我的输入文件是压缩的,所以我使用zcat读取文件并将它们发送到以前的处理:
zcat myfile.zip | myapp > ~/$( date "+%Y%m%d%H.txt" )
到目前为止,一切都很好。问题是我需要读取该变量名文件并继续处理它,例如,将文件内容发送到'head'命令。我试着:
head $( zcat myfile.zip | myapp > ~/$( date "+%Y%m%d%H.txt" ) )
没有成功。我真的不想创建另一个变量,因为这个过程可能需要1个多小时才能完成......也许我会在头部获得一个不同的文件名变量:
zcat myfile.zip | myapp > ~/$( date "+%Y%m%d%H.txt" ) ) && head ~/$( date "+%Y%m%d%H.txt" )
那么,您认为最好的方法是什么?
谢谢大家。
答案 0 :(得分:2)
使用tee
:
zcat myfile.zip | myapp | tee ~/$( date "+%Y%m%d%H.txt" ) | head
答案 1 :(得分:1)
将文件名存储在变量中:
filename=~/$( date "+%Y%m%d%H.txt" ); zcat myfile.zip | myapp > $filename && head $filename
答案 2 :(得分:1)
为什么不先将它存储在变量上?
FILENAME=$( date "+%Y%m%d%H.txt" )
zcat myfile.zip | myapp > ~/"$FILENAME" && head ~/"$FILENAME"