Не столько злонамеренный, сколько, возможно, глупый.
Разработчики настолько полны своим видением, что не понимают вещей, которые делают системы типа POSIX великими.
"Те, кто не понимает Unix, обречены изобретать его заново, причем плохо. "
Henry Spencer
Вы имеете в виду что-то вроде этого?
sed -e 's/\(.*\)\//\1,/' -i /var/incoming/new_item.txt
Как и @hhoke1, упомянутый в комментарии выше, вы можете использовать команды basename
и dirname
:
$ basename /var/incoming/new_items.txt
new_items.txt
$ dirname /var/incoming/new_items.txt
/var/incoming
Вы можете перебрать файл, а затем распечатать части до и после последней косой черты с расширением параметра:
while IFS= read -r line; do
printf '%s,%s\n' "${line%/*}" "${line##*/}"
done < test_as1
"${line%/*}"
удаляет самое короткое совпадение /*
с конца строки, а "${line##*/}"
удаляет самое длинное совпадение */
с начала строки.