相关疑难解决方法(0)

如何以系统管理员(root)身份运行命令

我需要运行具有管理权限的命令。有人说我应该以 root 身份运行命令。我该怎么做呢?

root administration sudo

71
推荐指数
2
解决办法
48万
查看次数

用于搜索 docx 文件的命令行工具

是否有用于文本搜索 docx 文件的命令行工具?我试过grep,但它不适用于 docx,即使它适用于 txt 和 xml 文件。我可以先将 docx 转换为 txt,但我更喜欢直接对 docx 文件进行操作的工具。我需要该工具在 Cygwin 下工作。

OP 编辑​​:后来我发现实现 grep 的最简单方法实际上是将这些 docx 转换为 txt 然后 grep 覆盖它们。

grep cygwin search microsoft-word

11
推荐指数
2
解决办法
1万
查看次数

grep 第二次更快

假设我进行了一次耗时的递归grep搜索。看到结果后,我想要不同的输出;例如,我想-C 3为 3 个上下文行添加选项。添加新选项后,我可以再次进行整个搜索,但我必须像以前一样等待。

有没有什么聪明的方法grep可以更快地执行第二次搜索?

grep

6
推荐指数
2
解决办法
1755
查看次数

许多文件上的许多关键字的 Grep:加快速度

我目前在使用 grep 时面临“性能问题”。我试图在许多(想想 Linux 内核存储库大小)文件中找到许多(10,000+)个关键字的出现。目标是为每个关键字生成一种索引:

keyword: my_keyword
filepath 1
filepath 2
------
keyword: my_keyword2
...
Run Code Online (Sandbox Code Playgroud)

作为 shell 脚本的新手,我尝试了一些幼稚的方法:

while read LINE; do
    echo "keyword: "$LINE >> $OUTPUT_FILE
    grep -E -r --include='Makefile*' "($LINE)" . >> "$OUTPUT_FILE"
    echo "-----"
done < $KEYWORD_FILE
Run Code Online (Sandbox Code Playgroud)

这需要大约 45 分钟才能完成,并获得预期的结果。

注意:我搜索的所有关键字都位于一个文件中(“KEYWORD_FILE”,因此在任何开始之前都是固定的),并且可以在搜索开始之前确定要搜索的文件。我试图在搜索之前存储要搜索的文件列表:

file_set=( $(find . -name "Kbuild*" -o -name "Makefile*") )
Run Code Online (Sandbox Code Playgroud)

然后将 grep 调用替换为

echo {$file_set[*]} | parallel -k -j+0 -n 1000 -m grep -H -l -w "\($LINE\)" >> "$OUTPUT_FILE"
Run Code Online (Sandbox Code Playgroud)

大约需要一个小时才能完成……

问题:考虑到我可以使用我想要的任何技术,只要它符合 sh 标准,如何“更快”和/或更有效地完成这项工作?

也许grep不是使用的工具,我的使用parallel …

performance shell grep

5
推荐指数
1
解决办法
991
查看次数