作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须创建一个 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/
我是一名优秀的程序员,十分优秀!