이 기간 동안 잘 지내시기 바랍니다. 문제는 내 txt 파일의 일부 줄에 주석을 달고 싶다는 것입니다. 여러 줄에 주석을 달고 주석을 해제하는 코드가 있는데 회사 이름을 얻는 방법을 모르겠습니다. 내 텍스트 파일에는 다음 구성표가 있습니다.lunar_static KKK_<countryname>_NUM 08.00.name
lunar_static KKK_USA_NUM 08.00.Winter
lunar_static KKK_ITALY_NUM 08.Winter
lunar_static KKK_ITALY_NUM 08.00.Spring
lunar_static KKK_ITALY_NUM 08.00.Autumn
lunar_static KKK_SPAIN_NUM 08.00.Winter
lunar_static KKK_SPAIN_NUM 08.00.Spring
lunar_static KKK_FRANCE_NUM 08.00.Autumn
lunar_static KKK_FRANCE_NUM 08.00.Autumn
lunar_static KKK_ITALY_NUM 08.00.Ferari-taxi
lunar_static KKK_ITALY_NUM "/^08\\.00\\.Delta\\ M$/"
lunar_static KKK_ROMANIA_NUM "/^08\\.00\\.Delta\\ M$/"
lunar_static KKK_ITALY_NUM "/^08\\.00\\.Red\\_Park$/"
가을, 페라리택시, 델타M, 레드파크로 이탈리아에 대한 코멘트를 드리고 싶습니다. 나는 sed를 사용하여 몇 가지 이름에 주석을 달는 방법을 알고 있습니다.
sed -i '/Winter\|Spring/s/^/#/' file2.txt
그리고 주석 해제
sed -i '/Spring/s/^#//' file2.txt
그러나 국가 이름에 관계없이 모든 이름을 선택합니다. 그 나라로 가는 방법을 모른다. 예상 출력
lunar_static KKK_USA_NUM 08.00.Winter
lunar_static KKK_ITALY_NUM 08.Winter
lunar_static KKK_ITALY_NUM 08.00.Spring
#lunar_static KKK_ITALY_NUM 08.00.Autumn
lunar_static KKK_SPAIN_NUM 08.00.Winter
lunar_static KKK_SPAIN_NUM 08.00.Spring
lunar_static KKK_FRANCE_NUM 08.00.Autumn
lunar_static KKK_FRANCE_NUM 08.00.Autumn
#lunar_static KKK_ITALY_NUM 08.00.Ferari-taxi
#lunar_static KKK_ITALY_NUM "/^08\\.00\\.Delta\\ M$/"
lunar_static KKK_ROMANIA_NUM "/^08\\.00\\.Delta\\ M$/"
#lunar_static KKK_ITALY_NUM "/^08\\.00\\.Red\\_Park$/"
나는 내가 받는 모든 제안에 감사드립니다. 감사합니다!
답변1
ITALY
검색어에 대상 국가를 포함하고 대안을 그룹화하고 두 검색어 (Autumn|Delta....)
사이에 문자를 허용해야 합니다..*
sed -E '/ITALY.*(Autumn|Delta.. M|Red.._Park|Ferari-taxi)/s/^/#/' file1
\
탈출을 피하기 위한 약간의 치트입니다.
sed -E '/ITALY.*(Autumn|Delta\\\\ M|Red\\\\_Park|Ferari-taxi)/s/^/#/' file1
-i
in place 플래그를 포함하여 동일한 파일을 변경합니다.sed
sed -i -E .....
편집하다이것을 다른 질문으로 게시할 수도 있지만...
\\
"...sed를 입력하지 않고도 단어를 찾을 수 있나요 \\\\
?..."즉, 아니오도망가다그들을.
아니요. 왜냐하면여기:
'\' 문자 뒤에 일부 일반 문자가 올 때 특별한 의미를 갖습니다.
따라서 일치 문자열에서 다음 문자가 \
예약된 쌍(예: \+
, \?
, ) 중 하나를 구성하는 \n
문자 인 경우 리터럴 이나 개행 문자를 sed
찾고 있는지 어떻게 알 수 있습니까?\n
따라서 \
문자 그대로 읽어야 하는 모든 문자는 sed
예약된 문자 시퀀스의 일부가 아님을 분명히 하기 위해 이스케이프되어야 합니다.