gpt4 book ai didi

regex - 如何对未知(但重复)的词进行分组以创建索引?

转载 作者:行者123 更新时间:2023-12-05 08:50:47 26 4
gpt4 key购买 nike

我必须创建一个 shellscript,通过获取包含在尖括号 (<>) 中的任何单词并从中创建一个索引文件来为一本书(文本文件)编制索引。我有两个问题希望您能帮助我!

首先是如何识别文本中尖括号内的单词。我发现有人提出了一个类似的问题,但需要方括号内的单词,并试图操纵他们的代码,但出现错误。

grep -on \\<.*> index.txt

原始代码是相同的,但使用的是方括号而不是尖括号,现在我收到一条错误消息:

line 5: .*: ambiguous redirect

已回答

我现在还需要获取我的索引并像这样重新格式化它,来自:

1:big
3:big
9:big
2:but
4:sun
6:sun
7:sun
8:sun

进入:

big: 1 3 9
but: 2
sun: 4 6 7 8

我知道我可以使用如下 awk 命令翻转列:

awk -F':' 'BEGIN{OFS=":";} {print $2,$1;}' index.txt

但我不确定如何将相同的词组合成一行。

谢谢!

最佳答案

能否请您尝试以下(如果您不担心排序顺序,如果您需要对其进行排序,请将 sort 附加到以下代码)。

awk '
BEGIN{
FS=":"
}
{
name[$2]=($2 in name?name[$2] OFS:"")$1
}
END{
for(key in name){
print key": "name[key]
}
}
' Input_file

说明:为上述代码添加详细说明。

awk '                                        ##Starting awk program from here.
BEGIN{ ##Starting BEGIN section from here.
FS=":" ##Setting field separator as : here.
}
{
name[$2]=($2 in name?name[$2] OFS:"")$1 ##Creating array named name with index of $2 and value of $1 which is keep appending to its same index value.
}
END{ ##Starting END block of this code here.
for(key in name){ ##Traversing through name array here.
print key": "name[key] ##Printing key colon and array name value with index key
}
}
' Input_file ##Mentioning Input_file name here.

关于regex - 如何对未知(但重复)的词进行分组以创建索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61305765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com