gpt4 book ai didi

linux - 如何使用Linux shell脚本读取文本文件的列并将文件复制到带有子目录的另一个路径

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

我需要一个 shell 脚本:

例如:我有 XMLDataNew.txt 文件包含以下值

doument1.doc us template

doument2.doc us vimbu standard

doument1.doc us aldo template

doument1.doc us vimbu standard

上面的文本文件读取使用shell脚本并根据列级别并使目录路径将$1第一列值复制到相应位置。

我已经尝试过:

while read -r line
do
id=$(echo $line | awk '{print $2}')
echo $id
mkdir -p "/home/mint/Documents/LiveLink/$id"

pc=$(echo $line | awk '{ print $3}')
echo $pc
mkdir -p "/home/mint/Documents/LiveLink/$id/$pc"

ct=$(echo $line | awk '{ print $4}')
echo $ct
mkdir -p "/home/mint/Documents/LiveLink/$id/$pc/$ct"

done< XmlDataNew.txt

最佳答案

您可以使用 awkcut 将行解析为列,但正确的答案是这样的:

while read name path; do
path="/home/mint/Documents/LiveLink/${path// //}"
mkdir -p "$path"
cp "$name" "$path" # I presume?
done < XMLDataNew.txt

鲜为人知的技巧是,如果您将多个变量名称作为 read 的参数,它会将每行的连续部分分配给变量,其中行根据 $IFS 值进行分割。因此,我们可以将第一列分配给变量name,并将行的其余部分分配给path

然后我使用 bashism 将 path 中的空格替换为正斜杠,因为这似乎就是您想要的。如果您不喜欢 bashism,可以使用 trsed

关于linux - 如何使用Linux shell脚本读取文本文件的列并将文件复制到带有子目录的另一个路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31153927/

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