繁体   English   中英

如何使用Linux Shell脚本读取文本文件列并将文件复制到子目录中的另一个路径

[英]How to read the column of text file using Linux shell script and copy the files to another path with in sub directories

我需要一个shell脚本:

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

doument1.doc我们模板

doument2.doc我们vimbu标准

doument1.doc我们aldo模板

doument1.doc我们vimbu标准

上面的文本文件读取了using 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM