gpt4 book ai didi

linux - 在 ubuntu linux 中复制和追加文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:02 24 4
gpt4 key购买 nike

我有两个文件夹,每个文件夹包含 351 个文本文件,我想将相应的文本从一个文件夹复制到另一个文件夹中的相应文件?当我使用 cat 命令时,结果是一个空文件?可能是什么问题

我的代码是:

#!/bin/bash
DIR1=$(ls 2/)
DIR2=$(ls 3/)

for each $i in $DIR1; do
for each $j in $DIR2; do
if [[ $i == $j ]];then
sudo cat $i $j >> $j
fi
done
done

2/和 3/是包含数据的文件夹...

最佳答案

DIR1DIR2 分别包含目录23 中的文件名。除了文件名中可能存在的空格或特殊字符问题外,您还必须使用 2/$i3/$j$i$j 将引用当前目录中具有相同名称的文件(23 的父目录>).

最好不要解析 ls 的输出。您不需要两个嵌套循环。

#!/bin/bash

DIR1=2
DIR2=3

for source in $DIR1/*
do
dest="$DIR2/$(basename $source)"

if [ -f "$dest" ]
then
sudo cat "$source" >> "$dest"
fi
done

另见 https://mywiki.wooledge.org/BashPitfalls#for_f_in_.24.28ls_.2A.mp3.29

根据您的需要,使用 sudo 运行整个脚本可能比为每个文件运行 sudo 更好。上面的版本只会以 root 身份执行 cat "$source"。当以 root 身份运行整个脚本时,这还包括 >> "$dest"

关于linux - 在 ubuntu linux 中复制和追加文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54216262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com