regex - Awk:如何处理文件夹和子文件夹中的多个 files.txt?

标签 regex bash shell awk cjk

给定一个包含多语言 .txt 文件的子文件夹,例如:

But where is Esope the holly Bastard
But where is 생 지 옥 이 군
지 옥 이
지 옥
지
我 是 你 的 爸 爸 !
爸 爸 ! ! !
你 不 會 的 !

我已经知道如何 count space-separated word-frequency within ONE file.txt :

$ grep -o '\w*' myfile.txt | awk '{a[$1]++}END{for(k in a)print a[k],k}' | sort > myoutput.txt

变得优雅:

1 생
1 군
1 Bastard
1 Esope
1 holly
1 the
1 不
1 我
1 是
1 會
2 이
2 But
2 is
2 where
2 你
2 的
3 옥
4 지
4 爸
5 !

如何更改代码以处理文件夹及其子文件夹中的多个文件,所有文件都呈现相似的模式(至少 *.txt)?

最佳答案

您可以使用 find命令。像这样:

find -iname '*.txt' -exec cat {} \; | grep -o '\w*' | awk '{a[$1]++}END{for(k in a)print a[k],k}' | sort 

我正在使用选项 -exec 来捕获当前目录及其子目录中的每个 *.txt 文件。输出将通过管道传输到您的 grep|awk|sort 管道。

关于regex - Awk:如何处理文件夹和子文件夹中的多个 files.txt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15604897/

相关文章:

bash - 如何根据来自 curl 的 HTTP 状态代码分支 shell 脚本?

linux复制符号链接(symbolic link)

linux - 如何在给定目录的只读权限下在终端中运行进程

c# - 正则表达式捕获句子中的确切单词

去除域名所需的正则表达式

linux - 不带引号的表达式注入(inject) bash

linux - 如何检查用户指定的名称是否引用目录?

.net - 最佳标签正则表达式

javascript - 添加另一个变量后,正则表达式替换不起作用

linux - Bash 子 shell 之谜