입력 파일에서 여러 명령을 실행하고 이를 새 출력 파일에 문자열로 묶는 방법

입력 파일에서 여러 명령을 실행하고 이를 새 출력 파일에 문자열로 묶는 방법

input.txt 파일에서 여러 명령을 차례로 실행하고 새 .csv 파일로 출력하고 싶습니다. 모든 명령은 개별적으로 실행될 때 성공적으로 실행되지만 { && 또는;으로 실행하면 아무 일도 일어나지 않습니다. }

내 명령은 다음과 같습니다

cat input_file.txt > output_file.csv
   awk 'NR % 13 == 0' 
   sed -i '1i id,surface area (mm^2),gray matter volume (mm^3),avg
   cortical thickness +-sd,mean curvature,gaussian curvature,folding
   index,curvature index,hemi,ROI' 
   awk -F"/" '$1=$1' OFS="\t" 
   sed -e 's/\s\+/,/g' 
   awk '{ print $10 " " $0}'   >> output_file.csv

이 모든 명령을 실행하고 이전 명령 이후에 각 명령을 실행하는 방법을 아는 사람이 있습니까?
매우 감사합니다!

답변1

당신은 원하십니까?체인하나의 출력에서 ​​다음의 입력까지? 그렇다면 명령을 파이프로 "연결"해야 합니다. 이렇게 하면 첫 번째 프로그램의 출력이 다음 프로그램의 입력이 됩니다.

date -u

2019년 10월 15일 17:58:20 UTC

date -u | sed 's/ /./'

2019년 3월 15일 17:58:20.UTC

그래서, 당신은 실행할 수 있습니다차례로파이프 문자 |를 사용하여 연결합니다.

또는 이들 모두의 출력을 독립적으로 얻으려면 하위 쉘을 사용할 수 있습니다. Bash에서는 다음과 같이 할 수 있습니다:

(command1.sh;command2.sh;command3.sh) >> output.txt

";", "&&", 개행 문자 등을 사용하여 별도의 명령을 실행할 수 있습니다.

관련 정보