繁体   English   中英

Linux:将字数附加到文件的每一行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM