Grep使用多个唯一单词的多个文件

时间:2019-03-20 15:35:56

标签: linux bash grep

我正在尝试从1200个文件中提取行。我现在有一个文本文件,格式如下:

"1" "keyword1" "filename1"
"2" "keyword2" "filename2"
"3" "keyword3" "filename3"
"4" "keyword4" "filename4"
and so on. 

我想要做的是检查包含关键字“ n”的行的文件名“ n”。我猜这可以在bash脚本中使用如下所示的某种循环来完成

for (i in 1:n){ 
grep "dataframe[i, 2]" dataframe[i,3]}

但是我真的很想让我学会如何像以前使用R一样在BASH脚本中进行实际编程。

2 个答案:

答案 0 :(得分:0)

尝试一下:

float (**f)[4] = (float(**)[4])malloc(2 * sizeof(float(*)[4]));
for (int p = 0; p < 2; p++) {
    f[p] = (float(*)[4])malloc(3 * sizeof(float[4]));
}

添加任何您想grep的参数,例如float (**f)[4] = new ... 作为行号。

答案 1 :(得分:0)

您需要的是:

awk -F'"' 'NR==FNR{ARGV[ARGC++]=$6; word[$6]=$4; next} $0 ~ word[FILENAME]' file

可以轻松地使它变得更健壮和/或更有效,具体取决于您的潜伏需求(例如,您想要什么输出,同一个文件是否可以用不同的单词多次出现,比较应该是正则表达式还是字符串,部分或全部等)。