쉼표로 구분된 파일의 특정 항목만 변환

쉼표로 구분된 파일의 특정 항목만 변환

일부 비트 분석 신호가 포함된 넷리스트 파일이 있습니다. 아래와 같이 신호 이름을 변경하고 싶습니다.

그것은 마치

\abc[0],\abc[1].....
\xyz[0],\xyz[2]....

나는 그것을 원한다

abc_0,abc_1....
xyz_1,xyz_1....

특정 신호 세트에 대해서만 이 작업을 수행하고 싶습니다. 그렇지 않으면 제거 \하고 .][_

특정 신호 목록에 대해서만 이 작업을 수행하려면 어떻게 해야 합니까? 누구든지 이 문제를 해결하도록 도와줄 수 있나요?

답변1

질문의 데이터를 사용하여:

$ sed 's/\\\([[:alnum:]]*\)\[\([[:digit:]]*\)\]/\1_\2/g' file
abc_0,abc_1.....
xyz_0,xyz_2....

sed명령은 가 영숫자로 구성된 문자열이고 가 숫자 문자열인 \word[digits]텍스트 와 일치합니다 (이러한 문자열은 비어 있을 수 있으며 최소한 한 문자가 필요 하도록 변경됩니다). 일치하는 문자열은 로 대체됩니다 . 데이터에 있는 모든 행의 항목을 모두 바꿉니다.worddigits*\{1,\}word_digits

관련 정보