列出语言环境而不重复
List the locale without making duplicates
我想列出文件 /etc/locale.gen
中的所有语言环境名称,不要重复。我真的不知道该怎么做。
我已经开始像这样删除文件的顶部:
sed -n -e '/aa_DJ/,$p' /etc/locale.gen
它打印了我所有的行。我想要这样的输出:
[...]
fr_FR
en_US
en_GB
[...]
例如,没有 # 并且没有 fr_FR 之后的其余部分。在一条命令中。
编辑 1:
我可能用 grep 找到了一些东西:
sed -n -e '/aa_DJ/,$p' /etc/locale.gen | grep {,1}
编辑 2:
也许是这样的:
awk -F'[@. ]' '!="#"{sub(/^#/,"");print }' /etc/locale.gen | uniq
(或没有 @
相同)
应该这样做:
awk -F "[ .@]" '/_|eo|ia/{sub("^# *",""); print }' /etc/locale.gen | sort -u
“[.@]”删除所有 language_country
(en_US) 之后的内容。
源 locale.gen 文件是 packaged by debian here(作为您应该拥有的文件示例,运行 上面的命令不需要)。完整的语言环境列表在提取的(来自压缩的 deb 文件)文件 /locales_2.22-5_all/usr/share/i18n/SUPPORTED
中(它包含 281 个唯一的语言环境名称)。
更新:s/gsub/sub/g
应该 运行 在任何 awk 上。
我想列出文件 /etc/locale.gen
中的所有语言环境名称,不要重复。我真的不知道该怎么做。
我已经开始像这样删除文件的顶部:
sed -n -e '/aa_DJ/,$p' /etc/locale.gen
它打印了我所有的行。我想要这样的输出:
[...]
fr_FR
en_US
en_GB
[...]
例如,没有 # 并且没有 fr_FR 之后的其余部分。在一条命令中。
编辑 1:
我可能用 grep 找到了一些东西:
sed -n -e '/aa_DJ/,$p' /etc/locale.gen | grep {,1}
编辑 2:
也许是这样的:
awk -F'[@. ]' '!="#"{sub(/^#/,"");print }' /etc/locale.gen | uniq
(或没有 @
相同)
应该这样做:
awk -F "[ .@]" '/_|eo|ia/{sub("^# *",""); print }' /etc/locale.gen | sort -u
“[.@]”删除所有 language_country
(en_US) 之后的内容。
源 locale.gen 文件是 packaged by debian here(作为您应该拥有的文件示例,运行 上面的命令不需要)。完整的语言环境列表在提取的(来自压缩的 deb 文件)文件 /locales_2.22-5_all/usr/share/i18n/SUPPORTED
中(它包含 281 个唯一的语言环境名称)。
更新:s/gsub/sub/g
应该 运行 在任何 awk 上。