stdout에서 많은 양의 데이터를 처리해야 하는데 몇 줄만 필요합니다.
로 시작하는 줄의 일부 데이터 와 로 시작하는 줄의 일부 데이터를 Label 3
파일에 추가하고 싶다고 가정해 보겠습니다 .F3.csv
Label 5
F5.csv
입력 예 - STDOUT에서
Label 1 25
Label 2 60
Label 3 70
Label 4 95
Label 5 100
산출
및 70
에 추가 합니다 .F3.csv
100
F5.csv
이것이 가능한지, 가능하다면 어떻게 하는지 알고 싶습니다.
혹시 해결책을 알고 계시나요?
답변1
Awk를 사용하면 이 작업을 쉽게 수행할 수 있습니다.
awk '/Label 3/ { print $3 >>"F3.csv" } /Label 5/ { print $3>>"F5.csv" }'
이것은 것이다추가의다음으로 시작하는 행의 값태그 3그리고태그 5파일로F3.csv그리고F5.csv이에 따라.
이는 더 간결하게 작성할 수도 있습니다.
awk '/Label 3|Label 5/ { print $3 >> "F"$2".csv"}'
태그 접미사에서 대상 파일 이름을 유추할 수 있다는 점을 이용하세요.
(@don_crissti에게 감사드립니다!)
답변2
이 시도 -
#sed -e '/Label\ 3/w F3.csv' -e '/Label\ 5/w F5.csv' sed.txt
Label 1 25
Label 2 60
Label 3 70
Label 4 95
Label 5 100
#head F?.csv
==> F3.csv <==
Label 3 70
==> F5.csv <==
Label 5 100