여러 행이 포함된 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