Попытка рекурсивно переместить файлы в объединенную папку, необходимо переименовать файлы с одинаковыми -именами, метод резервного копирования не работает

Спасибо за ответы. Вот мой сценарий. Я создал его методом проб и ошибок, который не часто приводит к рабочему решению, и у меня нет систематического способа придумать сценарий, к которому я всегда стремлюсь. Пожалуйста, предоставьте обзор кода, если можете. Спасибо.

Скрипт работает в следующих примерах (не уверен, работает ли вообще):

$ projection -d ":" /etc/passwd 4 3 6 7

$ projection -d "/" /etc/passwd 4 3 6 7

Сценарий projectionравен:

#! /bin/bash

# default arg value                                                                                                                                                               
delim="," # CSV by default                                                                                                                                                        
# Parse flagged arguments:                                                                                                                                                        
while getopts "td:" flag
do
  case $flag in
    d) delim=$OPTARG;;
    t) delim="\t";;
    ?) exit;;
  esac
done
# Delete the flagged arguments:                                                                                                                                                   
shift $(($OPTIND -1))

inputfile="$1"
shift 1

fs=("$@")
# prepend "$" to each field number                                                                                                                                                
fields=()
for f in "${fs[@]}"; do
    fields+=(\$"$f")
done

awk -F"$delim" "{ print $(join_by.sh " \"$delim\" " "${fields[@]}") }" "$inputfile"

где join_by.shэто

#! /bin/bash                                                                                                                                                                      

# https://stackoverflow.com/questions/1527049/join-elements-of-an-array                                                                                                           
# https://stackoverflow.com/a/2317171/                                                                                                                                

# get the separator:                                                                                                                                                              
d="$1";
shift;

# interpolate other parameters by teh separator                                                                                                                                   
# by treating the first parameter specially                                                                                                                                       
echo -n "$1";
shift;
printf "%s" "${@/#/$d}";
1
15.08.2020, 18:08
1 ответ

Как оказалось, командирский лайнер -— это именно то, что мне было нужно, и он работал все это время. Сначала я не понял, что выходной/резервный файл на самом деле является скрытым файлом. Не был уверен, что это формат. Я не указывал каталог в терминале, а вместо этого смотрел только в графическом интерфейсе и не включал просмотр скрытых файлов. Как только я запустил ls -l, я увидел, что файлы были там все это время.

-rw-rw-r-- 1 mike mike     140302 Jan 11  2020  test.JPG
-rw-rw-r-- 1 mike mike     140302 Jan 11  2020  test.JPG.~1~
-rw-rw-r-- 1 mike mike     140302 Jan 11  2020  test.JPG.~2~
-rw-rw-r-- 1 mike mike          0 Aug 15 02:34  test.txt
-rw-rw-r-- 1 mike mike          0 Aug 15 02:34  test.txt.~1~
-rw-rw-r-- 1 mike mike          0 Aug 15 02:32  test.txt.~2~
-rw-rw-r-- 1 mike mike          0 Aug 15 02:34  test.txt.~3~
-rw-rw-r-- 1 mike mike          0 Aug 15 02:34  test.txt.~4~
-rw-rw-r-- 1 mike mike          0 Aug 15 02:43  test.txt.~5~
-rw-rw-r-- 1 mike mike          0 Aug 15 02:43  test.txt.~6~
-rw-rw-r-- 1 mike mike          0 Aug 15 02:34  test.txt.~7~
-rw-rw-r-- 1 mike mike          0 Aug 15 02:34  test.txt.~8~
0
18.03.2021, 23:12

Теги

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