簡體   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