Используйте count
, чтобы указать количество копируемых байтов. Используйте оболочку для расчета. Используйте ibs=1
, чтобы установить размер входного блока равным 1,поэтому skip
и count
указываются в байтах.
dd ibs=1 skip=1228 count=$((1331-1228+1))
Поскольку 1228 и 1331 -1228+1 оба кратны 4, можно было бы установить размер входного блока равным 4, что сделало бы работу более эффективной, но если это не будет использоваться огромное количество раз. оптимизация потеряется в шуме. Другие вещи, такие как предварительное -вычисление результата 1331-1228+1
, должны быть выполнены в первую очередь.
dd ibs=4 skip=$((1228/4)) count=$(((1331-1228+1)/4))
Вы продолжаете добавлять к файлу jputn003.txt (с перенаправлением >>
). Поскольку он содержит неверные данные, удалите его и снова запустите скрипт.
Далее следует старый ответ:
Я предполагаю, что у вас нет среды с именем LAN
.
grep "$LAN" /usr/share/dict/words
Поскольку первый аргумент заключен в двойные кавычки, он подлежит расширению параметров оболочки . Оболочка bash заменит переменную $LAN. Поскольку для него не задано какое-либо значение, оболочка заменяет пустую строку. Теперь у нас:
grep "" /usr/share/dict/words
grep запрашивается для вывода, какие строки файла содержат пустую строку. Они все делают.