#bash #replace
Вопрос:
У меня есть текст, который нужно разделить; а именно, поставить пробел после двух символов в конце строки. Из «4,20 ГБ» вам нужно получить «4,20 ГБ«. Я знаю, что это можно сделать с sed
помощью , awk
и т. Д., Но я ищу легкий и более кроссплатформенный метод (для Linux/Unix/BSD).
Можно ли это сделать с bash
помощью и его функций? По какой-то причине я подумал printf
, что смогу это сделать, но быстрая проверка не дала ничего положительного.
Ответ №1:
Вы ищете «более кроссплатформенный метод, чем sed
«, а затем спрашиваете: «Можно ли это сделать с bash
помощью и его функций?»
Можно с уверенностью сказать, что sed
он установлен (или «легко устанавливается») на большем количестве компьютерных архитектур, чем bash
так, использование sed
должно быть более «кроссплатформенным», чем использование bash
.
Ответ №2:
Если я вас правильно понимаю, каждая строка, заканчивающаяся несколькими цифрами, за которыми следует ГБ, требует, чтобы вы добавляли пробел перед ГБ. Я не должен использовать слово «разделить«, которое предполагает, что вы хотите разделить одну строку на две строки.
Попробуй:
sed -i 's/GB$/ GB/' [filenames ...]
Я думаю , что sed
это более «кроссплатформенно», чем bash
, потому что, где бы вы ни были bash
, у вас легко будет sed
, как говорит @fuxoft в своем ответе.