한 행에서 패턴을 찾아 다른 행에서 패턴 바꾸기

한 행에서 패턴을 찾아 다른 행에서 패턴 바꾸기

다음과 같이 로컬 소프트 링크 경로가 있는 파일이 있습니다.

./tech/finegrain/DUALDFTIO/synopsys/DUALDFTIO.TSMC7N.db
./tech/finegrain/ESD18V/synopsys/ESD18V.TSMC7N.db

디렉토리의 원래 경로는 얻지만 파일 경로는 얻지 못합니다. 이 경우까지 정리하면 다음과 같다.

/proj/br_ccd_lib/macro/DUALDFTIO/0/synopsys

/proj/br_ccd_lib/macro/ESD18V/0/synopsys

synopsys이제 첫 번째 줄 세트 뒤에 텍스트를 가져온 다음 synopsys두 번째 줄 세트 뒤에 텍스트를 추가하고 싶습니다 . 위의 대체/추가를 어떻게 수행할 수 있습니까?

O/p는 다음과 같아야 합니다.

/proj/br_ccd_lib/macro/DUALDFTIO/0/synopsys/DUALDFTIO.TSMC7N.db
/proj/br_ccd_lib/macro/ESD18V/0/synopsys/ESD18V.TSMC7N.db

답변1

로컬 소프트 링크 경로를 이름이 지정된 파일에 입력 local.txt하고 원본 경로를 이름이 지정된 파일에 입력 original한 후 다음 명령을 실행할 수 있습니다.

paste original.txt local.txt | sed 's/synopsys.*synopsys/synopsys/' | sed 's/.db/.ssg.rev1d0u2p2.072v.0c.TSMC7N_1P13M1X1XA1YA5Y2YY2Z1ALRDL.db/'

/proj/br_ccd_lib/macro/DUALDFTIO/0/synopsys/DUALDFTIO.TSMC7N.ssg.rev1d0u2p2.072v.0c.TSMC7N_1P13M1X1XA1YA5Y2YY2Z1ALRDL.db
    /proj/br_ccd_lib/macro/ESD18V/0/synopsys/ESD18V.TSMC7N.ssg.rev1d0u2p2.072v.0c.TSMC7N_1P13M1X1XA1YA5Y2YY2Z1ALRDL.db

이 솔루션은 파일의 모든 경로가 local.txt로 끝나고 .dblocal.txt의 모든 경로가 다음과 동일하다고 가정합니다.original.txt

관련 정보