получите текст результата от команды CLI

Сохраните этот сценарий:

#!/bin/bash

NUM=0
NUMBER_LENGTH=4

cd $1;

ls . -1 | sort | while read file; do
    NUM=$(( $NUM + 1 ));
    PREFIX=$NUM;
    while [ ${#PREFIX} != $NUMBER_LENGTH ]; do
        PREFIX="0${PREFIX}";
    done;
    NEW_NAME=$PREFIX.`echo $file | sed 's|[^.]\+\.\([\A-Za-z0-9]\+\)|\1|g'`;
    mv "$file" "$NEW_NAME";
done

и выполните его как:

./_scriptname_ _dirWhereYourStuffIs_

ПРОТЕСТ: не помещайте сценарий в тот же dir, где Ваш материал, потому что сам сценарий был бы переименован.

Если Вы достаточно безумны, можно сделать все это в строке (не используя сценарий):

NUM=0; NUMBER_LENGTH=4; ls . -1 | sort | while read file; do NUM=$(( $NUM + 1 )); PREFIX=$NUM; while [ ${#PREFIX} != $NUMBER_LENGTH ]; do PREFIX="0${PREFIX}"; done; NEW_NAME=$PREFIX.`echo $file | sed 's|[^.]\+\.\([\A-Za-z0-9]\+\)|\1|g'`; mv "$file" "$NEW_NAME"; done

ПРОТЕСТ № 2: для этой одной строки я предполагаю, что Вы используете Bash

3
07.09.2014, 20:29
2 ответа
variable=$(rsync -av "$FOLDER1" "$FOLDER2" | grep "^sent")
9
27.01.2020, 21:11

Я решил это, выполнив:

variable=$(rsync -av "$FOLDER1" "$FOLDER2" | tee /dev/tty)

все равно спасибо

-1
27.01.2020, 21:11

Теги

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