Рейтинг:0

How to move a matched id of mat files in different folder

флаг cn

I have Matlab (.mat) files in a particular folder. In a text document, I have some IDs list marked as 0 and 1. First I need to match the IDs and separate the mat files that are marked as '1'. For your reference, I detailed it below with a sample set.

For instance: Assume that I have these files in a folder

2424903_ (1)_crop_vampire_3.1.2.mat
1905302 (2)_crop_vampire_3.1.2.mat
1904802 (1)_crop_vampire_3.1.2.mat
1902101_IYYANAR (1)_crop_vampire_3.1.2.mat

Text File:

2424903 - 1
1905302 - 0
1904802 - 0
1902101 - 1

Expected result:

2424903_ (1)_crop_vampire_3.1.2.mat
1902101_IYYANAR (1)_crop_vampire_3.1.2.mat

I need only these 2 files in a seperate folder.

I have tried below codes

$cat file.txt | xargs mv -t ./new folder
$xargs -a file.txt mv -t ./new folder

but I get errors like "No such file or directories" Kindly suggest a code/method to separate those files.

Рейтинг:0
флаг vn

Попробуйте этот скрипт:

#!/бин/баш

при чтении строки -r
делать
  id_num=$(echo "$line" | cut -d ' ' -f 1)
  id_inc=$(echo "$line" | cut -d ' ' -f 3)
  если [[ "$id_inc" == 1 ]]; тогда
    файл=$(найти -имя "${id_num}*")
    mv "$file" -t './новая папка'
    # echo "$file" # если вы хотите напечатать имя файла
  фи
сделано < файл.txt

Существует проблема с Xargs и именами файлов, содержащими пробелы.Это решение вместо этого просматривает каждую строку, проверяет, равно ли последнее поле 1, и в этом случае перемещает файл в новая папка.

Ответить или комментировать

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