
분석을 실행하기 위해 "dsk"라는 프로그램을 사용하고 있습니다. 나는 몇 줄의 분석에만 관심이 있으며 다음을 사용하여 해당 줄을 검색합니다.
dsk -file <filename> | grep -Ei 'string1|string2|string3'
이것은 나에게 다음과 같은 것을 제공합니다:
string1 : 13
string2 : 46
string3 : 39
*편집: 보다 현실적인 출력을 위해 형식이 변경되었습니다(탭 제한 없음, 32개의 공백, 콜론 및 필드 사이의 또 다른 공백).
그러나 나는 출력이 다음과 같기를 원합니다.
string1 string2 string3
13 46 39
Glenn이 제공한 답변은 다음과 같은 결과를 생성합니다. 아마도 공백이 혼란을 야기하기 때문일 것입니다.
string1 string2 string3
: : :
답변1
답변2
@SteelDriver가 링크한 답변에 언급된 일반 도구는 @glenn jackman의 답변과 마찬가지로 완벽합니다.
그러나 데이터 형식이 지정한 것처럼 간단한 경우, 즉 조각에 공백이 없는 경우 string1 .. stringN
입력 파일을 두 번 읽는 대신 다음을 수행할 수도 있습니다.
dsk -file <filename> | grep -Ei 'string1|string2|string3' > tempfile.txt
readarray labels < <(awk '{print $1}' tempfile.txt)
readarray values < <(awk '{print $2}' tempfile.txt)
printf '%s\t' ${labels[@]}
printf '\n'
printf '%s\t' ${values[@]}
printf '\n'
이 형식은 다소 단순할 수 있으며 특히 원하는 대로 항목을 정렬하지 않을 수 있습니다. 그러나 필요한 것이 탭으로 구분된 출력뿐이라면 그렇게 할 것입니다.