Удаление символов при именовании файлов или папок

Я также упомянул бы браузер elinks. Основной веб-сайт здесь. Должен быть в Вашем репозитории.

4
07.08.2015, 21:53
5 ответов

Вы можете использовать такую ​​команду:

sed -e 's/\///g' < file.txt | xargs mkdir

Команда sed удалит символы новой строки из file.txt и конвейер до xargs будут запускать mkdir для каждой строки в файле.

Эквивалентная команда (предложенная don_crissti) с использованием tr вместо sed :

tr -d / < file.txt | xargs mkdir
8
27.01.2020, 20:46

Вместо того, чтобы заново изобретать perl или что-то подобное, я взял ваш исходный код и добавил соответствующую часть, чтобы убрать проблемные символы /.

Начальное // это синтаксис bash для глобальной замены (поскольку у нас есть несколько проблемных /).

Последующий / представляет то, что мы хотим заменить (/).

Последний / предшествует тому, на что мы хотим его заменить (ничем).

#!/bin/bash -f
for f in $(cat ./file.txt ); do
mkdir ${f////}
done
3
27.01.2020, 20:46

И возможное решение с помощью awk :

awk -F"/" '{ print $1 $2 $3; }' file | xargs mkdir
2
27.01.2020, 20:46

У меня работает эта строка perl one.

cat data01.txt  |perl -ane 'chomp;s/\s+//g; s{\/}{}g; mkdir $_ if length($_);'
1
27.01.2020, 20:46

Вот способ с bash и sed

for var in $(cat data01.txt); do  dir=$(echo $var | sed -e 's/\///g;'); mkdir -vp $dir; done
1
27.01.2020, 20:46

Теги

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