[英]Linux: Append Word Count to Each Line of a File
目前对于Linux来说还很新,
我已经看到了一些简单的答案,可以在文件末尾附加一个常量/不变的单词/组件,例如, shell脚本在每行后缀
但是,我想知道如何将.csv文件每一行的字数附加到每一行的末尾,以便:
word1, word2, word3
foo1, foo2
bar1, bar2, bar3, bar4
成为:
word1, word2, word3, 3
foo1, foo2, 2
bar1, bar2, bar3, bar4, 4
我正在使用逗号分隔的值,因此,如果有一种更快/更简单的方法来使用逗号而不是项目,那么它也会起作用。
干杯!
简单的awk
解决方案:
awk -F ',' '{print $0", "NF}' file.csv
-F
参数可用于指定字段分隔,
你的情况。 $0
将包含整行 NF
是包含行中字段数的变量 您可以使用此:
while read line; do
N=`echo $line | wc -w`;
echo $line", "$N;
done < inputfile.txt
一个简单的(但很可能很慢)bash脚本可以达到目的:
#!/bin/bash
newfile=$1.tmp
cat $1 | while read l ; do
echo -n $l \ >> $newfile
echo $l | wc -w >> $newfile
done
然后根据您的喜好移动文件(使用tempfile
...保存):
one,
one, two,
one, two, three,
我得到:
one, 1
one, two, 2
one, two, three, 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.