将grep输出保存在shell变量中

时间:2015-10-30 15:54:22

标签: bash shell unix awk sed

我正在编写一个shell脚本,我希望在那里获取文件目录的最后24小时文件更改。我是这样做的:

for myfile in $(find . -maxdepth 1 -mtime -1)
    do
        echo $myfile|sed 's/.//'| sed 's/.//'|grep -v "^$";
    done

所以,现在我想将$myfile|sed 's/.//'| sed 's/.//'|grep -v "^$";的输出保存在shell变量中,并希望传递给另一个bash函数。我尝试过如下:

   for myfile in $(find . -maxdepth 1 -mtime -1)
        do
            latest_file=$($myfile|sed 's/.//'| sed 's/.//'|grep -v "^$");
        done

我收到bash: .: filename argument required错误。

我做错了什么? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您在添加echo时删除了$(...)。#!/ usr / bin / perl

latest_file=$(echo $myfile | sed 's/..//' | grep -v "^$")
#             ~~~~

另请注意,sed 's/.//' | sed 's/.//'相当于sed 's/..//更快。您也可以尝试cut -c3-(即显示第三个字符的每一行)。