Обработка списка имена файлов для разделения каталога и база данных

Не столько злонамеренный, сколько, возможно, глупый.

Разработчики настолько полны своим видением, что не понимают вещей, которые делают системы типа POSIX великими.

"Те, кто не понимает Unix, обречены изобретать его заново, причем плохо. "

          Henry Spencer
0
31.08.2018, 19:54
3 ответа

Вы имеете в виду что-то вроде этого?

sed -e 's/\(.*\)\//\1,/' -i /var/incoming/new_item.txt
0
28.01.2020, 02:42

Как и @hhoke1, упомянутый в комментарии выше, вы можете использовать команды basenameи dirname:

$ basename /var/incoming/new_items.txt
new_items.txt

$ dirname /var/incoming/new_items.txt
/var/incoming
0
28.01.2020, 02:42

Вы можете перебрать файл, а затем распечатать части до и после последней косой черты с расширением параметра:

while IFS= read -r line; do
    printf '%s,%s\n' "${line%/*}" "${line##*/}"
done < test_as1

"${line%/*}"удаляет самое короткое совпадение /*с конца строки, а "${line##*/}"удаляет самое длинное совпадение */с начала строки.

1
28.01.2020, 02:42

Теги

Похожие вопросы