에코 파이프라인 출력 [중복]

에코 파이프라인 출력 [중복]

다음 명령으로 파이프된 출력을 에코하는 방법이 있습니까? 예를 들어 텍스트 파일에서 파일 이름을 읽은 다음 해당 파일에 대해 명령을 실행할 수 있다고 가정해 보겠습니다.

cat files.txt | xargs -I{} -d"\n" command 

명령이 실행되고 출력이 터미널에 표시됩니다. 파일 이름도 인쇄할 수 있는 방법이 있습니까?

입력 파일에 다음이 포함되어 있다고 가정합니다.

file1.txt
file2.txt

예상 출력:

file1.txt
[output of command with file1.txt as input]
file2.txt
[output of command with file2.txt as input]

및 표준 출력도 얻을 수 있는 방법이 있습니까 file1.txt?file2.txt

답변1

다음과 같이 함수를 작성하는 것이 좋습니다.

Function()
{
cat file1.txt | xargs -I{} -d"\n" command >> /dev/console;
cat file2.txt | xargs -I{} -d"\n" command >>/dev/console;
}

답변2

cat하위 프로세스가 있으므로 사용하는 것이 더 많은 작업입니다. while 루프를 사용하는 것이 더 빠를 것 같아요

while read filename
do
# do something with $filename
done<file_to_be_processed

답변3

echo 사용할 수 있는 콘텐츠를 얻는 데 사용하려는 파일 이름을 얻으려면 cat. 유연성을 유지하려면(예: 명령을 명령으로 cat files.txt바꾸기 ) 통화를 계속해야 하지만 그 당시에는 파일만 수행해야 합니다.find ....xargs

 cat files.txt | xargs -L 1 /path/to/your_script

그리고 your_script:

#!/bin/bash
echo $1
cat $1

답변4

쉘 명령은 tee사용자가 요청한 작업을 정확하게 수행합니다(다음 명령으로 파이프된 출력을 에코합니다). tee( ) 에 파이프하면 됩니다 some_command | tee. 정확한 사용법, 예 및 기타 세부 정보는 명령의 매뉴얼 페이지를 찾으십시오.

관련 정보