【发布时间】:2021-10-22 12:11:10
【问题描述】:
我使用find /path/ -name *.zip > ~/ziplist.txt 在远程磁盘中收集了一个 zip 列表。
~/ziplist.txt 看起来像这样:
./path/to/the/file.zip
./path/to/the/file2.zip
./path/to/the/file3.zip
./path/to/the/very/nice/file.zip
我使用grep 过滤了这个列表,现在我必须更正.txt 文件中的列表,我想将它提供给ls x --full-time 以收集它们的时间戳(x 是文件列表)。
有可能吗?
我尝试过这样的事情:for f in tmp.txt do echo $( ls $f --full-time) done
编辑:我尝试过的另一件事是:cat tmp.txt | sed- "s/\(.*\)/'\1'/" ; ls --full-time $(!!)
sed 部分是必需的,因为显然文件名中有空格...否则,如果文件没有空格,则 $(!!) 可以正常工作。
我猜一个可行的解决方案也是ls -R --full-time | grep "what I want" > listfile.txt,但我认为这需要很长时间才能运行。有小步骤是必不可少的,因此我可以检查列表长度,因为有时我的磁盘访问可能会关闭。运行find 已经花了我一个小时。
注意:我在 windows10 上并使用 git bash 运行命令,所以我无法运行复杂的 .sh 脚本。我更喜欢单个终端条目来运行它。我知道,不是最好的配置。
【问题讨论】: