행을 사용한 조건부 전치

행을 사용한 조건부 전치

Unix에서 다음 테스트 데이터 형식을 지정하는 데 도움이 필요합니다.

견본:

Dan serv1 p1
Dan serv2 p2
Dan serv3 p3 
Dus serv2 p1
Dus serv3 p2
Dus Serv5 p3 
Tes serv3 p1
Tes serv5 p3

필수 형식:

Name p1    p2    p3
Dan serv1 serv2 serv3
Dus serv2 serv3 serv5
TEs serv3       Serv5

ベストアンサー1

mlr --n2p \
    label Name,Server,Prio then \
    reshape -s Prio,Server then \
    unsparsify  file

산출:

Name p1    p2    p3
Dan  serv1 serv2 serv3
Dus  serv2 serv3 Serv5
Tes  serv3 -     serv5

이는 다음을 사용합니다.밀러( mlr)는 먼저 입력의 세 필드에 Name, Server, 이 순서대로 레이블을 지정합니다 Prio(이 레이블이 의미가 있는지는 모르겠지만 필드 번호보다 사용하기 쉽습니다). 표시 후 데이터는 각 에 대한 새 레코드를 얻기 위해 재구성됩니다 Name. 각각의 새 레코드에는 Name필드가 있고 그 뒤에는 여러 Prio필드가 있습니다. 각 필드의 값 은 값 Prio입니다 .Server

마지막 unsparsify작업은 일부 필드 값이 누락된 레코드에 대해 빈 필드를 생성합니다(이렇게 하면 -출력에 표시되는 내용이 추가됩니다).

이 옵션은 (index input field) 다음에 (pretty-printed out) 이 오는 약어입니다 --n2p. 탭으로 구분된 출력을 얻거나 CSV를 얻을 수도 있습니다.--inidx--opprint--n2t--n2c

おすすめ記事