linux - 如何在 Linux 中使用 awk 创建字典?

标签 linux awk

#!/bin/bash
mkdir Dictionary
for litera in {A..Z}; do
cd Dictionary
echo > $litera.txt
cd ..
awk '{
    for(i = 1; i <= NF; i++) {
        print $litera;
        if(match(tolower($i), "^$litera")) {
            print $i;
        } 
    }
}' myfile | sort > Dictionary/$litera.txt

完成 导出 0

我的文件有文本:我有苹果

问题是在 awk 方法中 $litera = I have apples

我希望它有:I、h、a、v、e 等

我本质上想要的是从 myfile 中取出所有单词并将它们放入 Dictionary 文件夹中,每个单词都在其对应的文件中。

输出:

A.txt : apple

I.txt: I

H.txt: have

其余的将是空的。

最佳答案

这可以使用 gawkawk 来实现,如下所示:

$echo "I have an apple"| gawk -F "" '{print $3}'
h

$echo "I have an apple"| awk -F "" '{print $3}'
h

$echo "I have an apple"| awk'{split($0,array,"")} END{print array[3]}'
h

关于linux - 如何在 Linux 中使用 awk 创建字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16508781/

相关文章:

regex - Linux 命令 : Find & Replace using regex not woking as expected

linux - imagemagick-morph : increase file number but not consecutive

regex - Linux grep/awk : Filter lines in a file, 但在 EOF 处克隆(保留或省略)尾随换行符

regex - 分割数据,用空格分隔

bash - 文件列表中带有awk的文件大小总和

bash - 如何用sed替换第一次出现?

php - awk 单引号或双引号的用法

c - 读取阻塞甚至关闭写入结束

c++ - 如何先启动另一个终端任务?

linux - linux/input.h 键码布局是否独立?