Аналог trim() в bash/linux shell
Пишу небольшой скрипт, для которого надо сохранять две выбранные пользователем при предыдущих запусках скрипта опции, а при следующих запусках их восстанавливать.
Решил воспользоваться самым простым методом. Создаем рядом со скриптом 2 файла, и туда сохраняем значения опций:
echo "$OPT1" > ./option1
echo "$OPT2" > ./option2Некрасиво, но просто.
При запуске скрипта, читаем опции обратно:
OPT1=`cat ./option1`
OPT2=`cat ./option2`На всякий случай лучше обрезать лишние пробелы или "пустые" символы типа TAB или переводов строки. Во всяком случае, так рекомендуют во всех руководствах по программированию, и обычно, в каждом современном языке, в некотором виде есть функция
trim(), которая обрезает начальные и конечные пробелы.Оказывается, что в bash можно обрезать не только начальные пробелы, но даже начальные и конечные пустые строки. Причем решается это одной командой.
Возьмем, например, такой тестовый файл: На PasteBin
Если мы просто выведем его на консоль с помощью команды
cat "trimtext.txt", то получится следующее:smallwolfie@wolfschanze:~/myfiles/test/trim# ./testtrim
Trim()
smallwolfie@wolfschanze:~/myfiles/test/trim#т.е. со всеми пробелами и пустыми строками.
Самая простая реализация
trim() в shell/bash пропустить вывод команды через xargs без параметров. xargs, которая требует после себя команды, без указания команды все равно что echo без параметров. А echo без параметров все пустое обрезает.#!/bin/bash
cat "trimtext.txt"|xargsВывод:
./testtrim
Trim()Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2020/02/08/anal
