Сделать каталог для каждой строки в данном текстовом файле?

Bash 4 + решение:

shopt -s globstar
for f in ./**/*.rar; do rm -rf "${f%/*}"; done
5
22.04.2014, 02:31
3 ответа

Решение awk

awk '{print substr($2,1,4) substr($1,1,2)}' file

дает вам имена каталогов.

mkdir $(awk '{print substr($2,1,4) substr($1,1,2)}' file)

создает каталоги (если их не слишком много). Для огромных чисел (10 000+) вы можете использовать:

awk '{print substr($2,1,4) substr($1,1,2)}' file | xargs --delimiter=\\n mkdir

bash solution

awk не требуется, оболочка может сделать это сама:

while read first last rest; do mkdir -p "${last:0:4}${first:0:2}"; done <file
6
27.01.2020, 20:38

Вы можете использовать perl . Сказав:

perl -lanE 'mkdir substr(@F[1],0,4) . substr(@F[0],0,2)' studentInfo.txt

создаст желаемые каталоги.

1
27.01.2020, 20:38

Попробуйте так:

arr=($(cut -d ' ' -f1,2 < $*))
mkdir $(for ((i=0;i<${#arr[@]};i=i+2)); do echo ${arr[$i+1]:0:4}${arr[$i]:0:2}; done)

Первая строка создаст массив, содержащий только первые 2 поля из входных данных. Каждый элемент массива будет иметь два поля (первое, последнее). Вторая строка пройдет через каждый элемент массива и заменит каждое поле в соответствии с требованием и создаст новый каталог из каждой новой сформированной записи.

-1
27.01.2020, 20:38

Теги

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