use*_*123 13 shell csv columns wc
我有一个像这样的 CSV 文件:
abd,123,egypt,78
cde,456,england,45
Run Code Online (Sandbox Code Playgroud)
如何获得仅第 3 列单词的字符数?
我不知道如何wc
做到这一点。
Hau*_*ing 23
awk -F, '{sum+=length($3)}; END {print +sum}' file
Run Code Online (Sandbox Code Playgroud)
Sté*_*las 23
cut -d, -f3 | tr -d '\n' | wc -m
Run Code Online (Sandbox Code Playgroud)
(请记住,wc -c
计算的是字节数,而不是字符数:
$ echo a,1,españa,2 | cut -d, -f3 | tr -d '\n' | wc -c
7
$ echo a,1,españa,2 | cut -d, -f3 | tr -d '\n' | wc -m
6
Run Code Online (Sandbox Code Playgroud)
)
一个perl
解决方案:
perl -Mopen=:locale -F, -anle '$sum += length($F[2]); END{print $sum}' file
Run Code Online (Sandbox Code Playgroud)
或更短的版本:
perl -Mopen=:locale -F, -anle '$sum += length($F[2])}{print $sum' file
Run Code Online (Sandbox Code Playgroud)
在 Perl 中:
perl -F, -Mopen=:locale -lane 'print length $F[2]' your_file
Run Code Online (Sandbox Code Playgroud)