grep 정규 표현식/하위 표현식 도움말

grep 정규 표현식/하위 표현식 도움말

안녕하세요, 정규 하위 표현식에 대해 질문이 있습니다.

grep -o ".*='.*'" parameters.txt

parameters.txt포함하다:

name='something'
lastname=' 123123'
something='   somethinggg'

=내 정규식은 모든 것을 반환하지만 및 없이 이름과 값만 반환하고 싶습니다 ' '. 또한 공백과 탭에 영향을 받지 않기를 바랍니다.

name something
lastname 123123
somethign somethinggg

답변1

귀하의 경우에는 다음을 사용하는 것이 좋습니다 sed.

sed -r "/^[^=]*$/d;t;s/=/ /;s/'//g;s/[\t ]+/ /g" parameters.txt

이 명령

  • 어떤 줄도 건너 뛰세요아니요=플래그가 포함되어 있습니다
  • 바꾸다첫 번째 =공백 전달(열어두기, "값" 부분 자체에 할당이 포함될 수 있음)
  • '작은따옴표를 바꾸지 마세요.
  • 여러 개의 탭과 공백을 하나의 공백으로 대체

답변2

sed -e 's/['\''=]/ /g;s/  */ /g'

답변3

$ tr '=' ' ' < parameters.txt  | sed "s,',,g"  | sed -E "s,\s+, ,g"
name something
lastname 123123
something somethinggg

답변4

펄 사용:

perl -pe "tr/=' \t/ /d"   parameters.txt

관련 정보