enf неожиданного файла (за исключением “f$ing” fi")

Можно ли выполнить следующее?

grep -Ff FILE_A FILE_B > FILE_C

Теперь можно запустить скрипт на файлах A и C только.

Обновление: Ожидать... Это сохраняет порядок?

Другое обновление: еще Некоторая обработка необходима для хранения порядка. Это дает мне те же результаты как Ваш исходный сценарий. Протестированный на 300K строках в FILE_A и только 300K строки в FILE_B, 125 минут по сравнению с 14 secs.

#! /bin/bash
grep -Ff FILE_A FILE_B > FILE_B_TMP
grep -oFf FILE_A FILE_B_TMP > FILE_A_SHUFF
grep -Ff FILE_A_SHUFF FILE_A > FILE_A_TMP

while read -r line; do
   grep -F -m1 "$line" FILE_B_TMP
done < FILE_A_TMP > result.txt
1
09.07.2013, 02:18
2 ответа

Необходимо добавить строку хижины в начале сценария.

#!/bin/csh

Так, чтобы это было выполнено с /bin/csh а не с /bin/sh.

Ошибка похожа на Ваш сценарий, выполняется с sh.

2
27.01.2020, 23:39

if операторы должны закончиться fi, не с endif.

0
27.01.2020, 23:39
  • 1
    Броски после ошибки: fi: Команда, не найденная., или могло быть возможно, что я использую нормальную оболочку?, когда я пишу $SHELL, он говорит, что sh и $shell приносят csh –  TaXXoR 08.07.2013, 11:12
  • 2
    @hsos, извините, Вы были правы для начала. csh не использует стандартный синтаксис оболочки. –  David Baggerman 08.07.2013, 11:33
  • 3
    Проблема состояла в том, что оболочка по умолчанию без хижины была нормальной оболочкой. Я добавил #!/bin/csh -f вызвать c-оболочку. –  TaXXoR 08.07.2013, 11:46

Теги

Похожие вопросы