Сценарий Bash для сетевых устройств telnet, отличных от порта telnet

Я думаю, что вы можете достичь своей цели с помощью следующей команды:

find Pictures -type f -print0 | xargs -0 mv -t Picturesnew

, где Pictures— исходный каталог, а Picturesnew— целевой каталог.

И mv(, иcp)имеют формат mv -t directory source..., который хорошо подходит для использования с xargs.

Но этот метод оставит файлы с повторяющимися именами на их исходных позициях (возможно, это неплохо, так как вы можете просмотреть их и скопировать в место назначения позже ), так какmv -tне будет работать в интерактивном режиме при перенаправлении ввода используется . Это связано с тем, что xargsуже считывает значения из перенаправленного стандартного ввода (, который является выходом find), а mv, который запускается xargs, также пытается прочитать ответы из того же стандартного ввода. Таким образом, вы не можете использовать mv с каналами в интерактивном режиме.

Возможно, задание можно решить с помощью какого-нибудь умного ввода -переназначения дескриптора,но давайте попробуем более простой способ:избавиться от перенаправления вывода . Также мы не можем использовать -print0в подстановке команд, потому что это не позволяет использовать 0 -байт. Нам нужно перебрать имена файлов с for, , используя новую строку в качестве входного разделителя полей -:

TMP=$IFS; 
IFS=$'\n'; 
for i in $(find Pictures -type f); do 
    mv -it../Picturesnew $i; 
done; 
IFS=$TMP

(вы можете скопировать его как один -вкладыш ).

В этом случае mv будет не только запрашивать у вас каждый дубликат, но и ждать ответа.

-1
19.08.2019, 13:43
1 ответ

я обычно использую т.е.

var1=`cat file`
var2= someother;
$host
$port
echo $var1 $var2 |telnet $host $port

Так что в вашем случае я бы дал

telnet {  

while read -r line; do
var=`awk -v var1="^$line" -F "|" '$1~var1{print $1 }' sort-address-name-ip.txt | awk -v var2="$line$" '$0~var2' `
var3=`awk -v var1="^$line" -F "|" '$0~var1{print $2 }' sort-address-name-ip.txt`
    if [ $var =  $line ]
            then

            echo $var $var3 | telnet <$var-ip> <$var-port>

            fi


    done < policy-unique_single_line-src-dst-ip.txt
}

это попытка

(извините, пока не могу комментировать)

1
28.01.2020, 05:09

Теги

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