Скрипт bash для взятия одних и тех же строк из 2 разных файлов

0

Вопрос

У меня, например, есть файл под названием пользователи, и он включает

user1
user2
user3

и файл под названием "новые пользователи", включая:

newuser1
newuser2
newuser3

и теперь мне нужен скрипт bash для take user1 и newuser1 и выполнения некоторых команд, например "mv user1 для нового пользователя 1" и т. Д. что-то вроде этого, но это не работает для меня:

user=cat users
newuser= cat newusers

for u in user ; for n in newuser; do mv $u $n done; done
bash centos linux sh
2021-11-23 07:21:43
2

Лучший ответ

2

Если вы вложите два цикла, вы получите операции перемещения "количество пользователей" * "количество новых пользователей". Но вам нужно только "количество пользователей" для операций перемещения.

Чистый Баш:

#! /bin/bash

exec {users}<users
exec {newusers}<newusers

while true; do
  read user <&$users || exit
  read newuser <&$newusers || exit
  mv "$user" "$newuser"
done
2021-11-23 08:19:36

Это работает, чем у вас много. Ты экономишь мое время.Хорошего дня.
Samir Ahmadli
1

При условии, что файлы расположены в соответствующем порядке и имеют одинаковое количество строк:

tab=$(printf '\t')

paste users newusers |
while IFS=$tab read user newuser; do
    echo "move $newuser $user"
done

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

2021-11-23 08:39:51

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................