한 줄에 여러 검색 패턴 + 텍스트 작업 인쇄

한 줄에 여러 검색 패턴 + 텍스트 작업 인쇄

내 출력은 다음과 같습니다

 /map1/firmware1   Targets   Properties
     version=2.44
     date=Jul 19 2016
     name=iLO 4

내가 원하는 출력은 다음과 같습니다.

version=2.44 date=Jul_19_2016

출력을 한 줄로 결합하기 위해 xargs.

cat test | egrep '(version=|date=)' |xargs
 date=Jul 19 2016

답변1

dosOP의 문제는 스타일 라인 엔딩 때문인 것 같습니다 ...

예:

$ cat -e chk 
 /map1/firmware1   Targets   Properties^M$
     version=2.44^M$
     date=Jul 19 2016^M$
     name=iLO 4^M$

$ egrep '(version=|date=)' chk | xargs
 date=Jul 19 2016

unix스타일이 지정된 줄 끝 으로 변환한 후:

$ perl -i -pe 's|\r\n|\n|' chk 

$ cat -e chk 
 /map1/firmware1   Targets   Properties$
     version=2.44$
     date=Jul 19 2016$
     name=iLO 4$

$ egrep '(version=|date=)' chk | xargs
version=2.44 date=Jul 19 2016

답변2

sed한 줄 사용

$ sed -n '/version/ {N; s/[\r\n]//g; p}' filename
     version=2.44     date=Jul 19 2016

설명하다

  • /version/패턴을 일치시키고 중괄호 블록을 실행합니다 { }.
  • N입력 파일에서 다음 줄을 가져와 패턴 공간에 추가합니다.
  • s/[\r\n]//g패턴 공간에서 모든 개행 문자와 캐리지 리턴을 제거합니다.
  • p패턴 공간을 인쇄합니다.

관련 정보