![v find を使用して表にテキストを送信する [閉じる]](https://linux33.com/image/13063/v%20find%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E8%A1%A8%E3%81%AB%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E9%80%81%E4%BF%A1%E3%81%99%E3%82%8B%20%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
答え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