나는 사용하려는 찾기 - 여러 개의 명령을 실행 없이 성공을 거두었다. 아는 사람 있어요 경우 다음과 같은 명령을 사용할 수 있습니다.
find *.txt -exec echo "$(tail -1 '{}'),$(ls '{}')" \;
나는 기본적으로 하고, 마지막 줄의 인쇄하려면 각 줄의 끝에 현재 디렉토리에 txt 파일 및 인쇄, 쉼표 뒤에 파일_이름.
'찾기' '를 사용할 수 있는 여러' exec 구간들을 함장님이요 예를 들면 다음과 같습니다.
find . -name "*.txt" -exec echo {} \; -exec grep banana {} \;
단, 이 경우 두 번째 명령은 @Caleb 언급한 것처럼, 첫 번째 성공적으로 되돌려줍니다 경우에만 실행됩니다. 스케쳐내 관계없이 모두 실행하십시오 chunghwa 성공이나 실패, 이 명령을 사용할 수 있습니다.
find . -name "*.txt" \( -exec echo {} \; -o -exec true \; \) -exec grep banana {} \;
다른 방법은 다음과 같습니다.
multiple_cmd() {
tail -n1 $1;
ls $1
};
export -f multiple_cmd;
find *.txt -exec bash -c 'multiple_cmd "$0"' {} \;
한 선
multiple_cmd() { tail -1 $1; ls $1 }; export -f multiple_cmd; find *.txt -exec bash -c 'multiple_cmd "$0"' {} \;
이런 식으로 multiple_cmd as long as you 등 복잡한 할 수 있습니다.
ᄋ "이번 도움이 됩니다.
카밀로 마틴 수 있었는데, 그 덕분에 관련 질문:
What I do) 는 했다.
find ... -exec zcat {} | wc -l \;
find ... | while read -r file; do echo "$file: `zcat $file | wc -l`"; done
작동합니다, 고마워!
문제 해결을 위한 제 1 답을 데니스 이 답이다. 그러나 실제로는 더 이상 찾기 등 여러 개의 명령의세 제목을 단 한 exec 제안하세요. 이 질문에 대한 답을 얻을 수 있는 몇 가지 명령의세 알아낼 수 있는 무언가 찾는 건 한 exec 것입니다. 이것은 예:
마지막 줄이 있는 수정되었습닌다 지난 7 일 동안 계속 10000mb .log 파일을 사용하여 명령을 사용하여 1 exec 여러 {} 참조입니다
find / -name "*.log" -a -type f -a -mtime -7 -exec sh -c "echo tail -10000 {} \> fictmp; echo cat fictmp \> {} " \;
'찾기 / - 이름 " *.log"; - a - - - - c 타입 f - a - sh, 꼬리 - 10000mb {} > " exec 마티메 7. 피치mp. 고양이 피치mp >. {}; rm fictmp". \ '.
'A' find+xargs 대답.
아래 예제는 aspt 모든 파일과 함께 '가' 는 '' .html 복제본에 오바크 확장명은 (예를 들어 ',' > 1.html '1.html.BAK').
find . -iname "*.html" -print0 | xargs -0 -I {} cp -- "{}" "{}.BAK"
find . -iname "*.html" -print0 | xargs -0 -I {} echo "cp -- {} {}.BAK ; echo {} >> /tmp/log.txt" | sh
# if you need to do anything bash-specific then pipe to bash instead of sh
이 명령은 또한 파일 작업 공간 또는 컨테인먼트하는 피레스트믈 '덕분에' 내 하이픈입니다 시작되는 등 말을 인용해 '와' - '후' '어떤 신호를 매개변수입니다 cp, cp 및끝 매개변수 및 초기 실제 파일 이름.
>. '결과' 파이프를 통해 print0 null 바이트 종료자에서.