file.py ARG
내 파일에 이와 같은 패턴이 있습니다
패턴을 검색하여 바꾸고 싶습니다 file.py
(ARG
아니요"
모든 일치 항목에서 후행 큰따옴표를 제거합니다.
입력 파일은 다음과 같습니다.
"SEC":"NEW"
"CMD":"/usr/local/file.py ARG"
명령줄 대체를 사용하고 싶습니다 ARG
(여기서는 상수가 아니고 어떤 텍스트라도 가능합니다). ARG
그래서 큰따옴표를 제거하지 않고 텍스트를 검색하고 바꾸는 패턴을 찾고 있습니다 file.py
.
답변1
질문에 제공하신 내용을 바탕으로 다음을 수행하세요.
sed 's/\(file.py\) \+.\+"$/\1 NEW_VALUE"/'
sed
- 스트림 편집기
s
- 명령 대체
/\(file.py\) \+.\+"$/
- 끝에 '가 있는 모든 줄 찾기file.py','하나 이상의 공백','하나 이상의 문자열', 및 '"'(큰따옴표) -
\1
이는 첫 번째(이 경우에만) 하위 표현식을 대체합니다 .(file.py)
답변2
초보자를 위해 이렇게 해보자 sed
:
아마도 s
ubstitude 명령을 알고 있을 것입니다 s/old/new/
. 이제 문자열 ARG를 알 수 없으므로 몇 가지 특성을 찾아야 합니다. 예를 들어, 줄 끝에 큰따옴표만 있고 영숫자 문자만 포함되어 있습니까? 엄청난! [:alnum:]
줄 끝에는 문자 클래스와 "$" 앵커를 사용합니다 .
sed 's/[[:alnum:]]*"$/new"/'
그러나 이것은 온라인으로만 적용되어야 합니다 file.py
. sed
이를 위해 줄 번호나 /patterns/
명령 앞에 주소를 사용하십시오.
sed '/file.py/s/[[:alnum:]]*"$/new"/'