Относительно вашего вопроса о командной строке терминала Linux. Ответ таков: он может обрабатывать гораздо большие строки, которые в значительной степени зависят от того, сколько у вас свободной оперативной памяти. Например. Из командной строки я просто запустил printf '%s'
со строкой в 20 000 000 байтов; у него не было проблем. Я также запускал его через sed.exe
(в винной среде Linux); это тоже нормально работало ... Каким бы ни был предел командной строки, он также зависит от того, с какой программой вы можете передавать такие большие строки, так как их максимальный размер ввода команды.
Но это необычная / странная ситуация, в которой вы хотите передать такие большие строки в программу, потому что в какой-то момент вы достигнете максимума.
С помощью sed
и таких больших строк вы можете сделать одну из двух вещей:
Запишите свои данные в файл и используйте:
sed "s@ab/cd@AB_CD@" my_data_file
pipe (|) вывод команды для стандартного ввода sed:
my_data_app | sed "s@ab/cd@AB_CD@"
Обратите внимание, что у самого sed может быть некоторое ограничение длины строки, но из памяти ограничение GNU sed довольно высокое.
Кроме того, вместо значения по умолчанию /
, я использовал @
, но вы можете использовать практически все, что вам нравится.