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