逐行提取文件中出现的字符

时间:2013-03-27 02:34:11

标签: bash

我有一个双语词典的大文件,其格式为:

abatement: disminucion; mitigacion; moderacion; rebaja; deduccion; supresion; anulacion

我正在尝试查找哪个行的翻译单词最多,所以我希望找到;出现次数最多的行,然后回显英文单词。

我设法收到了一些东西,但它使用sed修剪数据,这意味着我无法将英文单词重新匹配到该行。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

awk -F'[:;]' '{if(NF>n){n=NF;w=$1}}END{print w}' filename

答案 1 :(得分:1)

;视为字段分隔符,;行将包含最多字段。

while IFS=';' read -a fields; do
    n=${#fields[@]}
    if (( n > max )); then
       max=$n
       english=${fields[0]%:}
    fi
done < file.txt
echo "$english"