Sed Bash 스크립트는 sed의 첫 번째 줄만 실행합니다.

Sed Bash 스크립트는 sed의 첫 번째 줄만 실행합니다.

bash스크립트가 실행됩니다 sed. 실행하는 데 사용하는 명령은 다음과 같습니다.

sed -f sedhw.bash thesbians.txt

콘텐츠sedhw.bash

s/[0-9]*//g
s/1908/---/g; s/1895/---/g; s/1903/---/g
s/,.*//g
s/^[^"]*"/"/
s/,[^",]*"/,/;s/"//g

파일의 각 명령을 한 번 실행하여 하나가 아닌 5개의 다른 출력을 제공하려면 이 명령이 필요합니다.

텍스트 파일은 다음과 같습니다

Chase,Cornelius 1943 "Chevy"
Davis,Ruth      1908 "Bette"
Keaton,Joseph   1895 "Buster"
Stone,Emily     1988 "Emma"
Lee,Shelton     1957 "Spike"
Reynolds,Mary   1932 "Debbie"
Crosby,Harry    1903 "Bing"
Fey,Stamatina   1970 "Tina"

답변1

~처럼@roaima그리고@kusalananda이미 댓글을 달았으며 귀하의 것은 sedhw.bashsedfile입니다.

sed -f sedhw.bash thesbians.txtsedhw.bash의 모든 sed 명령은 thesbians.txt 파일에 대해 실행됩니다.

지금 뭐하고 지내?대신에sedhw.bash의 행을 반복하고 각 행을 실행하여 새 출력 파일을 생성하는 것입니다.

#!/bin/bash
while read num line; do 
     sed "$line" thesbians.txt > output.${num}.txt
done < <(nl sedhw.bash)

설명하자면, nl sedhw.bash명령에 번호가 매겨지고 "탭으로 구분"된 줄 번호와 명령이 표시됩니다.

     1  s/[0-9]*//g
     2  s/1908/---/g; s/1895/---/g; s/1903/---/g
     3  s/,.*//g
     4  s/^[^"]*"/"/
     5  s/,[^",]*"/,/;s/"//g

<(...)명령 출력은 while 루프에서 파일로 렌더링됩니다.

루프는 이 "파일"을 한 줄씩 입력 <하고 탭으로 구분된 필드를 변수 "num" 및 "line"으로 읽습니다.

sed"$line" 명령을 실행하여 sedhw.bash에서 해당 라인 번호의 파일에 씁니다.

결과

$ for item in output*; do echo; echo "=== $item ==="; cat $item ; done 

=== output.1.txt ===
Chase,Cornelius "Chevy"
Davis,Ruth      "Bette"
Keaton,Joseph   "Buster"
Stone,Emily     "Emma"
Lee,Shelton     "Spike"
Reynolds,Mary   "Debbie"
Crosby,Harry    "Bing"
Fey,Stamatina   "Tina"

=== output.2.txt ===
Chase,Cornelius 1943 "Chevy"
Davis,Ruth      ---  "Bette"
Keaton,Joseph   ---  "Buster"
Stone,Emily     1988 "Emma"
Lee,Shelton     1957 "Spike"
Reynolds,Mary   1932 "Debbie"
Crosby,Harry    ---  "Bing"
Fey,Stamatina   1970 "Tina"

=== output.3.txt ===
Chase
Davis
Keaton
Stone
Lee
Reynolds
Crosby
Fey

=== output.4.txt ===
"Chevy"
"Bette"
"Buster"
"Emma"
"Spike"
"Debbie"
"Bing"
"Tina"

=== output.5.txt ===
Chase,Chevy
Davis,Bette
Keaton,Buster
Stone,Emma
Lee,Spike
Reynolds,Debbie
Crosby,Bing
Fey,Tina

관련 정보