如何foo
使用命令行将所有内容开头的文件移动到另一个文件夹?
我试着在匹配时回显文件名:
for f in *.txt; do if [ $(head -c5 $f) = "foo" ]; then echo $f; fi; done;
但是我经常遇到这个错误:
-bash: [: too much arguments
将Perl一线式与find
和结合使用xargs
,如下所示:
echo foo > 1.txt
echo "foo\nbar" > 2.txt
echo "bar\nfoo" > 3.txt
mkdir foodir
find . -maxdepth 1 -name '[123].txt' -exec perl -lne 'print $ARGV if /^foo/; last;' {} \; | xargs -I{} mv {} foodir
find foodir -type f
# foodir/2.txt
# foodir/1.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句