v find를 사용하여 테이블에 텍스트 보내기 [닫기]

v find를 사용하여 테이블에 텍스트 보내기 [닫기]

다음 파일이 있습니다

파일 이름: File1.txt 텍스트 파일 다음 표의 형식을 얻을 수 있습니까?

테이블 형식 요구 사항

답변1

노력하다:

awk '
!($3 in T1)     {SQ[++CNT] = $3
                }
                {T1[$3] = T1[$3] DL[$3] $1
                 T2[$3] = T2[$3] DL[$3] $2
                 DL[$3] = ","
                }
END             {for (i=1; i<=CNT; i++) printf "%s\t%s\t%s\t", T1[SQ[i]], T2[SQ[i]], SQ[i]
                print _
                }
' file
1,3 2,4 5s  5   6   16s 7   8   23s 

답변2

GNU의 대안인 Sledgehammer는 awk줄 바꿈이나 공백을 필드 구분 기호로 사용하며 -F'[\n ]', 레코드 구분 기호로 간주되는 RS=""모든 항목도 피해야 합니다.\n

awk -F'[\n ]' 'BEGIN{RS=""; OFS="\t"}
    {print  substr(FILENAME,1,length(FILENAME)-4), $1","$4, $2","$5, $3, $7, $8, $9, $10, $11, $12}
    ' *.txt

산출:

 File1   1,3     2,4     5s      5       6       16s     7       8       23s

관련 정보