目前很新的Linux,
我已经看到了一些直接的答案,用于在文件的末尾添加一个常量/不变的单词/组件,例如shell script add suffix each line
但是,我想知道如何将.csv文件的每一行的字数附加到每行的末尾,以便:
word1, word2, word3
foo1, foo2
bar1, bar2, bar3, bar4
变为:
word1, word2, word3, 3
foo1, foo2, 2
bar1, bar2, bar3, bar4, 4
我正在使用逗号分隔值,所以如果使用逗号而不是项目有更快/更简单的方法,那么这也可以。
干杯!
答案 0 :(得分:4)
简单awk
解决方案:
awk -F ',' '{print $0", "NF}' file.csv
-F
参数可用于指定字段分隔符,在您的情况下为,
。$0
将包含整行NF
是包含行答案 1 :(得分:0)
你可以用这个:
while read line; do
N=`echo $line | wc -w`;
echo $line", "$N;
done < inputfile.txt
答案 2 :(得分:0)
一个简单(但很可能很慢)的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