我使用此命令在.docx内容中搜索:
unzip -p *.docx word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g' | grep $1
但我需要包含我搜索过的单词的文件名。我该怎么办?
答案 0 :(得分:0)
尝试:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char course; //this decl stores only single character not string
printf("Enter Your Course Name: \n");
scanf(" %s", &course); //passing string argument
if (course == 'TOEFL') {//can't compare strings with == use strcmp
printf("Yes, you are eligible \n");
} else {
printf("You Can Not Join Us \n");
}
return 0;
}
答案 1 :(得分:0)
您可以通过for
周期浏览文件:
for file in *.docx; do
unzip -p "$file" word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g' | grep PATTERN && echo $file
done
当grep找到模式时,&& echo $file
部分会打印文件名。
答案 2 :(得分:0)
如果你正在使用GNU grep(可能就像你在Linux上一样),你可能想要使用这个选项:
--label=
LABEL显示实际来自标准输入的输入作为来自文件
LABEL
的输入。这在实施zgrep
之类的工具时特别有用,例如gzip -cd foo.gz | grep --label=foo -H something
。看到 也是-H
选项。
所以你有类似
的东西for f in *.docx
do unzip -p "$f" word/document.xml \
| sed -e "$sed_command" \
| grep -H --label="$f" "$1"
done