首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找文件中的单词并使用shell脚本与它们一起生成.csv

查找文件中的单词并使用shell脚本与它们一起生成.csv
EN

Unix & Linux用户
提问于 2018-05-04 16:23:25
回答 2查看 324关注 0票数 0

在不同的目录中存在许多具有此结构的文件,这些文件命名为等于idea.js:

代码语言:javascript
复制
get.idea("tagIdea1","Some idea1 tag abc");
get.idea("idea1","Some idea1 description1 abc");
get.idea("tagIdea2","Some idea2 tag abc");
get.idea("idea2","Some idea2 description2 abc");
...
...

...So像这样..。许多想法与其对应的概念描述。

有必要从每个get.idea函数中获取第二个参数,并在找到de idea.js文件的同一个目录中创建对应的.csv文件,每个文件的秒参数如下所示:

代码语言:javascript
复制
Idea, descripcion
"Some idea1 tag abc","Some idea1 description1 abc"
"Some idea2 tag abc","Some idea2 description2 abc"

我认为使用grep命令和正则表达式将单词存储在数组中并在一个周期内增加每个想法的数量,但我不知道如何创建与每个想法的第二个参数相匹配的正则表达式,以及如何将数组中的存储导出到一个新的.csv文件中,该结构位于找到idea.js文件的同一个目录中。你能帮帮我吗。

EN

回答 2

Unix & Linux用户

发布于 2018-05-04 16:56:00

代码语言:javascript
复制
$ sed -n '/^get\.idea/s/^.*(\(.*\)).*/\1/;p' input | awk -F, 'BEGIN {print "Idea, Description";OFS=","} (NR % 2 ) == 1 {save=$2} (NR % 2) ==0 {print save, $2}'
Idea, Description
"Some idea1 tag abc","Some idea1 description1 abc"
"Some idea2 tag abc","Some idea2 description2 abc"

我们使用sed删除所有无关的cruft,然后通过解析其他行来使用awk来生成CSV文件。

票数 0
EN

Unix & Linux用户

发布于 2018-05-04 17:14:42

使用单个awk命令:

代码语言:javascript
复制
awk 'BEGIN{ print "Idea, Description"; FS = OFS = "," }
     { desc = substr($2, 1, length($2) - 2) }
     { if ($1 ~ /"tag/){ tag = desc } else { print tag, desc } }' idea.js

产出:

代码语言:javascript
复制
Idea, Description
"Some idea1 tag abc","Some idea1 description1 abc"
"Some idea2 tag abc","Some idea2 description2 abc"

扩展方法以满足“在找到de idea.js文件的同一目录中创建其对应的D3文件”的要求:

创建idea_to_csv.awk脚本:

代码语言:javascript
复制
#!/bin/awk -f

BEGIN{ print "Idea, Description"; FS=OFS="," }
{ desc = substr($2, 1, length($2)-2) }
{ if ($1 ~ /"tag/){ tag = desc } else { print tag, desc } }
代码语言:javascript
复制
find . -type f -name "idea.js" -execdir sh -c 'awk -f ~/idea_to_csv.awk "$1" > idea.csv' _ {} \;

将路径~/idea_to_csv.awk更改为创建idea_to_csv.awk的实际位置

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/441816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档