![](/img/trans.png)
[英]How to rename all directories , files and text in the files recursively using bash shell script in linux
[英]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
您可以使用awk
或cut
来将行解析为列,但是正确的答案是这样的:
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,则可以使用tr
或sed
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.