파일에서 변수를 읽고 sed에 전달합니다.

파일에서 변수를 읽고 sed에 전달합니다.

두 개의 파일이 있습니다: unknown.csv포함

aaa
bbb
ccc

또 다른 파일 01.txt

;lksdjflk aaa lkdsfjdlk
aaa|xxlkjasd|
    |sadkl;k|lsa;dkl

변수를 다음과 같이 정의하고 j=aaa시도 하면

sed "s/${j}//g" 01.txt

찾아서 aaa삭제하겠습니다. 하지만 내가 다음과 같이 j 읽으 려고하면unknown.csv

j=$(sed '1q;d' unknown.csv)

그리고 시도해 보세요

sed "s/${j}//g" 01.txt

아무 일도하지. echo $j두 경우 모두 동일한 결과가 표시됩니다 aaa.

목표는 파일에서 변수를 읽고 파일의 변수를 unknow.csv해당 변수로 바꾸는 것입니다.01.txt

감사해요

답변1

Windows에서 알 수 없는.csv 파일을 생성하셨나요? 그렇다면 캐리지 리턴이 포함될 수 있습니다.

노력하다

(set -x; echo "$j" )

값을 표시합니다 $j.

라인 1만 원하고 끝에 '\r'이 없으면 다음을 사용하십시오.

sed -nr '1s/\r?$//p' unknown.csv

관련 정보