Я думаю, что ваш $n -gt 37777 может быть? Кроме того, вы можете if (( n >= 5555 ))использовать более «естественно» выглядящие операторы сравнения чисел (и возможность опускать знак доллара). И вы можете сделать ((n++)).
Приостановлено до дальнейшего уведомления.
16
Выход, когда вы закончите, может ускорить процесс:
sed -n '5555,7777p; 7778q' input_file
Приостановлено до дальнейшего уведомления. источник
1
+1, должно быть быстрее, обновил мой пост, чтобы показать почему.
Кайл Брандт
7
Любой из них должен работать;
sed -n ' startnumber , endnumber p'
awk 'NR> = начальный номер && NR <= конечный номер '
Я обнаружил, что опция sed не работает с файлом mysqldump, я полагаю, из-за обработки заключенных в кавычки переводов строки или многобайтовых символов. голова и хвост нарезают его, используя те же номера строк, что и grep, что мне и было нужно. Чтобы получить строки от $ j до $ k, вам нужно:
Ответы:
Это напечатает строки 5555-7777 файла включительно.
Деннис Написал следующее, что я согласен, должно быть быстрее:
sed '5555,7777p; 7778q' filename
Следующие доказательства того, что это должно быть быстрее:
Только в Bash (для удовольствия):
источник
$n -gt 3
7777 может быть? Кроме того, вы можетеif (( n >= 5555 ))
использовать более «естественно» выглядящие операторы сравнения чисел (и возможность опускать знак доллара). И вы можете сделать((n++))
.Выход, когда вы закончите, может ускорить процесс:
источник
Любой из них должен работать;
Отличный вопрос, кстати;)
источник
Я обнаружил, что опция sed не работает с файлом mysqldump, я полагаю, из-за обработки заключенных в кавычки переводов строки или многобайтовых символов. голова и хвост нарезают его, используя те же номера строк, что и grep, что мне и было нужно. Чтобы получить строки от $ j до $ k, вам нужно:
источник