Я смог выполнить это с помощью команды sed, но не смог заставить его работать в perl.Хотелось бы добавить пробелы между символами канала, которые расположены близко друг к другу, без пробелов и буквенно-цифровых символов.
input ==> a|123|##||||
expected output ==> a|123|##| | | |
Эта команда sed
отлично работает:
echo "a|123|##||||" | sed 's/\([^[:blank:][:alnum:]]\)|/\1 | /g'
вывод для указанной выше команды ==> a|123|## | | | |
В Perl я не смог заставить его работать
echo "a|123|##||||" | perl -pe 's/\([^[:blank:][:alnum:]]\)|/\1 | /g'
с выводом для вышеуказанной команды
| a | | | 1 | 2 | 3 | | | # | # | | | | | | | | |