sed - 여러 줄 모드 교체 및 사용

sed - 여러 줄 모드 교체 및 사용

여러 행이 포함된 CSV 파일이 있습니다. 동일한 데이터를 여러 번 복사하고 매번 특정 문자를 다른 파일의 다른 문자로 바꾸고 싶습니다.

:

아래에는 csv와 ref 파일(A~Z 포함) 문자라는 두 개의 파일이 있습니다. csv 콘텐츠를 26번(A~Z) 복사하고 매번 변수를 바꾸고 싶습니다.VARA, B, C,...Z로.

catcsv_file

some text with VAR,data 2,data 3,data 4,some text and VAR
,,,data 4,some text
,,,data 4,some text

고양이 참고자료

A
B
C
...so on upto 
Z

결과:

some text with A,data 2,data 3,data 4,some text and A
,,,data 4,some text
,,,data 4,some text
some text with B,data 2,data 3,data 4,some text and B
,,,data 4,some text
,,,data 4,some text
..
... so on

내가 하고 있는 일은

DATA="some text with & following text,data 2,data 3,data4,some text and_&\n,,,data4,some text\n,,,data 4,some text"

sed -e "s/^.*$/$DATA/g" ref

변수(DATA) 대신 파일 이름을 사용하는 것 외에 동일한 결과를 얻을 수 있는 다른 방법이 있습니까?

답변1

VAR을 {A..Z}로 바꿀 때마다 다음 명령을 사용하십시오.

잘 작동해요

for i in `cat /var/tmp/ref`; do  sed "s/VAR/$i/g" csv_file ;done

샘플 출력

some text with A,data 2,data 3,data 4,some text and A
,,,data 4,some text
,,,data 4,some text
some text with B,data 2,data 3,data 4,some text and B
,,,data 4,some text
,,,data 4,some text

관련 정보