Bash:如何获取文件的字数并将其插入文件本身?

标签 bash

我不是一个有经验的 bash 用户。我想获取文件的字数并将其插入回文件中以用作标识符。

首先,我将变量 wordcnt 初始化为零。

wordcnt=0;

然后我运行代码

for file in *.txt; do 
wordcnt=$((wc -w < $file));
echo "<field name='wordcount'>$wordcnt</field>" >> $file;
done

我得到的结果是

-bash: wc -w < file.txt: syntax error: invalid arithmetic operator 
(error token is ".txt")

我不认为我可以按照我正在做的方式将字数应用于 wordcnt 变量。

如何将字数应用于变量,以便之后可以将其插入到文件中?

最佳答案

你需要删除额外的一对括号:

for file in *.txt; do 
    wordcnt=$(wc -w < $file);
    echo "<field name='wordcount'>$wordcnt</field>" >> $file;
done

命令替换 $(..) 将捕获 wc 的输出并将其分配给变量 wordcnt

关于Bash:如何获取文件的字数并将其插入文件本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25553700/

相关文章:

linux - 自动化需要用户交互的流程的最佳策略

bash - 将 grep 搜索结果传送到 sed 中替换

linux - 删除不包含特定文本的行

python - 创建逗号分隔的路径列表(允许路径中存在空格),并将结果作为变量传递以供再次使用

linux - 如何将目录中的所有文件名作为参数传递给 Bash 中的命令?

bash - 如何使用 FFMPEG 将输出和日志文件通过管道传输到 S3

linux - sed并解析MAC地址

linux - 在 bash shell 中区分 pst 和 dbx 文件的正确方法

bash - 使用 expect 来自动执行管道命令

linux - 如果死了,Cronjob 会检查并重新启动服务