sed -i 명령 문제 '

sed -i 명령 문제 '

Linux에서 sed 명령을 사용하여 큰 텍스트 파일의 한 줄을 편집하려고 합니다.

내 file.txt의 원래 줄은 다음과 같습니다.

Cg64_2043 XI1.MM1.GATE vss '0.0'

본질적으로 행의 0.0을 10으로 변경하고 싶습니다. 문제는 sed 명령을 보내는 것처럼 보이는 줄 자체에 '가 있다는 것입니다. 해결책이 있나요? 감사해요!

sed -i '/Cg64_2043 XI1.MM1.GATE vss '0.0'/s/0.0/10/' file.txt

답변1

큰따옴표만 사용하세요.

sed -i "/Cg64_2043 XI1\.MM1\.GATE vss '0\.0'/s/0\.0/10/" file.txt

먼저 일치 항목을 확인한 다음 교체하는 것은 의미가 없습니다. 그냥 교체하면 됩니다. 일치하지 않는 작업은 수행되지 않습니다.

sed -i "s/\(Cg64_2043 XI1\.MM1\.GATE vss \)'0\.0'/\1'10'/" file.txt

또는 sed가 지원하는 경우 -E(대부분 지원):

sed -E -i "s/(Cg64_2043 XI1\.MM1\.GATE vss )'0\.0'/\1'10'/" file.txt

관련 정보