用多个命令找到


我试图用多个命令使用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 {}" ;

未经作者同意,本文严禁转载,违者必究!