안녕하세요, 정규 하위 표현식에 대해 질문이 있습니다.
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