exec使用多个命令

我试图用多个命令使用find -exec而没有任何成功。 有人知道下列命令是否可行?

find *.txt -exec echo "$(tail -1 '{}'),$(ls '{}')" ;

基本上,我试图在当前目录中打印每个txt文件的最后一行,并在行尾打印一个逗号,后跟文件名。


find接受多个-exec部分的命令。 例如:

find . -name "*.txt" -exec echo {} ; -exec grep banana {} ;

请注意,在这种情况下,第二个命令将仅在第一个命令成功返回时运行,如@Caleb所述。 如果你希望这两个命令都可以运行,不管它们是成功还是失败,你都可以使用这个构造:

find . -name "*.txt" ( -exec echo {} ; -o -exec true ; ) -exec grep banana {} ;

find . -type d -exec sh -c "echo -n {}; echo -n ' x '; echo {}" ;

以下之一:

find *.txt -exec awk 'END {print $0 "," FILENAME}' {} ;

find *.txt -exec sh -c 'echo "$(tail -n 1 "$1"),$1"' _ {} ;

find *.txt -exec sh -c 'echo "$(sed -n "$p" "$1"),$1"' _ {} ;
链接地址: http://www.djcxy.com/p/13719.html

上一篇: exec with multiple commands

下一篇: Given two directory trees, how can I find out which files differ?