[英]bash script for take same lines from 2 different file
例如,我有一个名为 users 的文件,它包含
user1
user2
user3
和名为 newusers 的文件,包括:
newuser1
newuser2
newuser3
现在我需要 bash 脚本来获取 user1 和 newuser1 并执行一些命令,例如“mv user1 to newuser1”等等,但这对我不起作用:
user=cat users
newuser= cat newusers
for u in user ; for n in newuser; do mv $u $n done; done
如果你嵌套这两个循环,你会得到“用户数”*“新用户数”移动操作。 但是您只需要“用户数”移动操作。
纯 Bash:
#! /bin/bash
exec {users}<users
exec {newusers}<newusers
while true; do
read user <&$users || exit
read newuser <&$newusers || exit
mv "$user" "$newuser"
done
如果文件的顺序匹配,并且行数相同:
tab=$(printf '\t')
paste users newusers |
while IFS=$tab read user newuser; do
echo "move $newuser $user"
done
它适用于 bash 或sh
。 您可以使用相应的行构建命令。 这些行不能已经包含制表符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.