0
我有幾個CSV文件有多個列,我想要獲取每個列的最大長度,最小長度和每個列的最大長度(最大 - 最小值)列在同一個CSV文件中。例如:使用shell腳本查找CSV文件中列的最小和最大長度
文件:
abc 1234 4
bcd 23644 534
c 3232 6
預期輸出:
abc 1234 4
bcd 23644 534
c 3232 6
Max Length 3 5 3
Min Length 1 4 1
Diff 2 1 2
下面的腳本用於計算MAX柱長度產生預期輸出:
awk -F, '
{ for (i=1;i<=NF;i++)l[i]=((x=length($i))>l[i]?x:l[i])}
END {for(i=1;i<=NF;i++) print "Column"i":",l[i]} '
但有MIN長度腳本的問題:
awk -F"," 'BEGIN {
for (i=1;i<=NF;i++) {
cur = length($i)
if ((min == 0) || (cur < min)) {
minlength = i
min = cur
}
} ;
for (i=1;i<=NF;i++) print $minlength}'
任何幫助將不勝感激。
中,第二腳本,使用BEGIN,你需要閱讀了關於節目BEGIN做了什麼。另外,您提到了CSV文件,awk腳本使用逗號作爲分隔符,但您的示例中沒有逗號。由於「CSV」無論如何都是高度模糊的名稱,如果您澄清了您的意思,它可能會有所幫助。特別是,任何領域都有嵌入字段分隔符?如果CSV文件中的某個字段中的值看起來像「」abc「'(即帶有外部引號),那麼應計算爲長度爲3還是5?那麼''「」「'的長度呢? – peak