다음 입력 문자열을 고려하십시오.
PLOG_NFET_SLVT nf=3 ng=1 nl=20n
산출
PLOG_NFET_LVT nf=3 ng=1 nl=14n
참고: 첫 번째 단어와 마지막 단어가 교체됩니다. 데이터 간에도 차이가 있습니다. 그래서 나는 일정한 패턴을 가질 수 없습니다. 다음 명령을 사용해 보았습니다.
sed -i 's/PLOG.*FET_SLVT.*nl=20n/PLOG.*FET_LVT.*nl=14n/g' file
출력은 다음과 같습니다
PLOG.*FET_LVT.*nl=14n
도움이 필요하세요?
답변1
검색 패턴에서 캡처링 그룹을 사용하고 바꾸기 패턴에 역참조( \1
또는 )를 추가할 수 있습니다.\2
sed 's/PLOG_\([A-Z]\)FET_SLVT \(.*\) nl=20n/PLOG_\1FET_LVT \2 nl=14n/'
답변2
이 시도,
sed -i 's/^PLOG_NFET_SLVT/PLOG_NFET_LVT/g;s/20n$/14n/g' file
- 패턴을 찾아보세요시작그리고
PLOG_NFET_SLVT
로 교체PLOG_NFET_LVT
- 및 검색 패턴마치다그리고
20n
로 교체14n
답변3
이 시도:
sed 's/SLVT/LVT/;s/20n/14n/'
예
$ echo "PLOG_NFET_SLVT nf=3 ng=1 nl=20n" | sed 's/SLVT/LVT/;s/20n/14n/'
PLOG_NFET_LVT nf=3 ng=1 nl=14n