Назад | Перейти на главную страницу

Скрипт для grep большого файла

У меня есть файл, содержащий около 63000 строк, мне нужно grep, хотя

[root@server]# cat missinglinks.txt
69870  1.pdf.Published
125098 2.png.Published
125022 3.pdf.Published
69867  4.png.Published

У меня есть список из 450 номеров, которые будут соответствовать какой-то строке в файле missinglinks.txt.

[root@server]# cat missinglinksA.sh
125105
125104
125103
125102
125100
125099
125098
125097
125022

Я пытаюсь использовать сценарий, чтобы взять первую строку из missinglinksA.sh и grep missinglinks.txt и вывести ее в файл, а затем вторую, n .....

for n in $(cat missinglinksA.txt)
do
    cat missinglinks.txt | grep $n
done

Мне нужен выходной файл, например:

[root@server]# cat missinglinksAout.txt
125098 2.png.Published
125022 3.pdf.Published

Однако я не могу получить вывод ни на экран, ни в текстовый файл, я не уверен, что я делаю что-то не так или скрипт просто не выводит.

У меня есть -o -i, похоже, никто не решает проблему.

Я могу сделать:

[root@server]# cat missinglinksA.txt | grep 125098 >> missinglinksAout.txt

И это работает.

[root@server]# cat missinglinksAout.txt
125098 2.png.Published

Я взял 10 верхних строк из файла missinglinksA.txt и создал сценарий для проверки каждой строки, и это тоже не работает, пустой вывод.

[root@server]# cat missinglinksAtesteachline.sh
cat missinglinksA.txt | grep 125105
cat missinglinksA.txt | grep 125104
cat missinglinksA.txt | grep 125103
cat missinglinksA.txt | grep 125102
cat missinglinksA.txt | grep 125100
cat missinglinksA.txt | grep 125099
cat missinglinksA.txt | grep 125098
cat missinglinksA.txt | grep 125097
cat missinglinksA.txt | grep 125022

[root@server]# sh missinglinksAtesteachline.sh
[root@server]#

Взяв копии с ваших "кошек", я могу получить ожидаемые результаты с помощью следующей команды:

$ fgrep -f missingLinksA.txt missingLinks.txt 
125098 2.png.Published
125022 3.pdf.Published

Надеюсь, это поможет.