sed 명령에 지정된 변수에 do 루프 사용

sed 명령에 지정된 변수에 do 루프 사용

나는 다음과 같은 데이터 구조를 가지고 있습니다

HG2 MET 
HG1 THR
HG2 THR
HG2 GLN

원하는 출력은

HG1 MET 
HG1 THR
HG2 THR
HG1 GLN

어떻게 든 다음을 수행해야합니다

for i in MET GLN
do
sed 's/HG2 $i/HG1 $i/g'
done

또는 HG2의 THR을 변경하지 않고 다른 모든 항목을 변경하도록 지정할 수 있는 경우

답변1

sed전체 파일에 대해 동일한 작업을 한 번 수행할 수 있습니다.

sed -E 's/HG2 (MET|GLN)/HG1 \1/' < oldfile > newfile

답변2

좋아, 다음과 같은 큰따옴표를 추가하여 해결책을 찾았습니다.

sed "s/HG2 $i/HG1 $i/g"

관련 정보