Наличие проблемы, ищущей строку в файле

В ext2/3/4 можно сделать некоторое приближение на основе размера самого каталога. Это не очень точно, но позволяет образованное предположение без "подсчета".

Каталог запускается на уровне 4 096 байтов по умолчанию. Поскольку это получает больше записей, это увеличивается в размере (но никогда не будет уменьшаться снова). После некоторого тестирования кажется, что каждая запись берет 12 байтов и растет на 4 096, когда это достигает предела. Это означает, что, если размер текущего каталога 16384, Вы имели между 1 024 и 1 365 записями когда-то.

Существует также прием к просмотру файлов в этих каталогах сразу. Когда Вы работаете ls, весь каталог прочитан и затем отсортирован. Можно отключить использование сортировки ls -1U.

3
19.09.2014, 11:46
3 ответа

Похоже, что в строке с оператором case отсутствует « in », а также закрывающий esac :

echo "Do you wish to search again? [y/n]"
read INPUT_STRING2
case $INPUT_STRING2 in
   y)
   ;;
   *)
   exit
   ;;
esac
3
27.01.2020, 21:12

Я хочу, чтобы мой скрипт сказал пользователю, не найдена ли строка .....    Я пытался ... использовать -, но это не сработало.

Что ты пытался?

if grep -q "$STRING" "$FILE"
then
        echo "string found"
else
        echo "string not found"
fi

работает.

P.S. Советую процитировать все ссылки на переменные оболочки. (например, "$INPUT_STRING2", "$STRING" и "$FILE"). если только у тебя нет веских причин не делать этого, и ты уверен, что знаешь, что делаешь.  И наоборот, вам не нужно цитировать константные строки (например, найденная строка). если только они не содержат специальных символов.  (Квадратные скобки - "[" и "]" - являются специальными символами в этом контексте)).  Но в любом случае, хорошо бы их процитировать.

1
27.01.2020, 21:12

Вы сделали две синтаксические ошибки ( в после переменной и esac в конце утверждения дела):

echo "Do you wish to search again? [y/n]"
read INPUT_STRING2
case $INPUT_STRING2 in
   "y")
   echo "Searching again"
   ;;
   *)
   exit
   ;;
esac
3
27.01.2020, 21:12

Теги

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