Сценарий Bash, чтобы получить результат rsync передает и архивировать его как каталог в исходном каталоге

Большинство команд могут работать с вводом, который является либо файлом, который им требуется открыть для ввода, либо потоком данных, который передается команде через STDIN.

Когда содержимое cat file.txt передается другой команде через канал ( | ), выходные данные через STDOUT, которые передаются в канал на левой стороне, настраиваются и подаются в команду, которая находится на правой стороне STDIN трубопровода.

Если содержимое не передается через STDOUT - > STDIN через канал, команды могут получать данные, открывая файлы, передаваемые по имени через аргументы командной строки.

Примеры

Отправка выходных данных в STDOUT.

$ cat file 
1
2
3
4
5

Выход из файла cat передается через STDOUT в STDIN grep через канал.

$ cat file | grep 5
5

Обработка файла в качестве аргумента командной строки.

$ grep 5 file 
5

Обработка содержимого файла непосредственно через STDIN.

$ grep 5 < <(cat file)
5

Здесь я демонстрирую, что содержимое файла может быть направлено в grep через STDIN выше.

-121--133869-

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

Я получил еще 2 решения для этой проблемы (одно из ответа Гнуца , которое является решением perl , и другое из решения Джона в сочетании с моим решением).

#The variable appended_input will remove spaces/tabs and just append the rows. 
#Modify the file name in this line. Here I use inputfile as the filename. 

appended_input=$(column -s '\t' inputfile | tr -d '[:space:]') ;

#The array variable will store each column-wise value as an array element.  
#I use sort to find the number of unique elements.

array=($(
    for ((i=0; i<6; i++))
    do
        new=${appended_input:$i:1}
        for ((j=i+6; j<${#appended_input}; j=j+6))
        do 
            new="$new${appended_input:$j:1}"
        done
        echo "$new"
    done
    )) | echo "${array[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '

Тестирование

Мой входной файл выглядит следующим образом.

1 0 0 1 0 0
0 1 1 0 0 0
1 1 1 1 1 0
1 0 0 1 0 1
1 0 0 1 0 1

После выполнения вышеупомянутого сценария, я получаю выходные данные как,

00011 00100 01100 10111

Вы можете иметь wc -w в качестве окончательного канала, и вы получите выходные данные как только 4 вместо уникальных значений столбцов, как выше.

-121--59021-

Можно изменить поле, отредактировав файл, или можно использовать usermod -c , хотя в настоящее время оно называется полем comment в man 5 passwd , это было не всегда, это было поле GECOS в UNIX название не отражает его использования: предоставление общей информации.

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

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

Программы, такие как finger , могут использоваться для отображения информации о лицах, включая структурированное содержимое этого поля. Я фактически использовал эту функцию (с желтыми страницами для получения информации на всех рабочих станциях) до появления LDAP и личных адресных книг.

1
23.10.2018, 05:05
1 ответ

Я придумал STAIL.SH скрипт:

foldername=$(dirname $(pwd))
projname=$(basename $(pwd))
rsync -a --exclude-from=.rsyncrc $(pwd) $TMPDIR
cd $TMPDIR
zip -rq $foldername/$projname/dist/$projname-latest.zip $projname
cd $foldername/$projname

он находится в корневой папке, так что всякий раз, когда я хочу упаковать в Zip весь проект, я Беги Source Build.sh И там он идет, в моей папке DIST / AS ProjectName -LATEST.ZIP

0
28.01.2020, 01:42

Теги

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