문자열-여러 열 뒤의 값 검색

문자열-여러 열 뒤의 값 검색

이 파일(output.txt)이 있습니다.

    name:some name^M
    ^M
    count:1^M
    ^M
    region:some_region
    name:some name^M
    ^M
    count:2^M
    ^M
    region:some_region^M
    ^M
    name:some name^M
    ^M
    count:1^M
    ^M
    region:some_region^M
    ^M
 
Testing Powershell scripts execustions from Rundeck server against Windows server

이름, 개수, 지역 다음에 값만 가져오는 방법

원하는 출력:

some name 1 some region
some name 2 some region
some name 1 some region

~와 함께 grep -E 'name|count|region' output.txt | sed 's/^.*: //'

나는 얻었다

some name
1
some_region
some name
2
some_region
some name
1
some_region

여러 열을 생성하는 방법은 무엇입니까?

답변1

awk를 사용하여 가능한 대답 중 하나:

cat input | awk '/name: /{name=substr($0,7)} /count: /{cnt=substr($0,8)} /region:/{print name" "cnt" "substr($0,9)}' 

답변2

awk '/^(name|count|region):/{
         sep = (/^region/? ORS : OFS);
         gsub(/^[^:]+:[[:space:]]*|[[:space:]]*$/, "");
         printf "%s%s", $0, sep 
     }' file.txt

@RomanPerekhrest에게 감사드립니다

관련 정보