Скопируйте файлы так, чтобы отдельные файлы копировались в папку, имеющую имя файла в виде строки внутри полного имени папки [закрыто]

Я использую Cygwin в качестве оболочки Linux, В моем текущем рабочем каталоге есть следующее содержимое:

Файлы:

Abc.dat
123.dat
456.dat

Directories:
W_Abc_w 
W_123_w 
W_456_w

Now I want to copy files as below: 
Abc.dat -> W_Abc_w
123.dat -> W_123_w
456.dat -> W_456_w

Как добиться этого с помощью однострочной команды linux? Или короткий сценарий оболочки?

-2
задан 20 November 2019 в 20:42

1 ответ

Используя цикл Bash:

#!/bin/bash
for f in *.dat; do
  sub="${f%.dat}"
  [ -d "W_${sub}_w" ] && cp -- "${f}" "W_${sub}_w"/
done
2
ответ дан 21 December 2019 в 23:52

Другие вопросы по тегам:

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