我有一个日志文件,如:
/IE_copora/1987/07/14/0056700.xml.json 2
/IE_copora/2006/11/01/1801433.xml.json 3
日志文件中的第一列是文件路径列表,第二列只是一个数字。
我想从旧路径中移动日志文件中记录的文件
/IE_copora/1987/07/14/0056700.xml.json
走向一条新的道路:
/new_directory/1987/07/14/0056700.xml.json
基于日志文件中的第二列编号(第二列编号小于10的文件路径)。
答案 0 :(得分:1)
首先,您必须逐个读取日志文件中的行。 第二个在两个变量中得到第一个和第二个字段。 第三,在BASH / Shell中使用case / esac语句来处理要移动的新位置。
#!/bin/bash
while read line
do
#Get first column/field - path
from="$(echo $line | cut -d' ' -f1)"
firstfolder="$(echo $from | cut -d'/' -f1)"
#Get Second column - number
number="$(echo $line | cut -d' ' -f2)"
case $num in
1)
#When number is 1. I'll do this. This assumes you aleady
#where $firstfolder exists.
mv $firstfolder new_directory1
2)
#When number is 2. I'll do that. This assumes you aleady
#where $firstfolder exists.
mv $firstfolder new_directory2
3)
#When number is 3. I'll do this/that. This assumes you aleady
#where $firstfolder exists.
mv $firstfolder new_directory3
#4) ..
#5) ..
#..) ..
#9) ..
*)
#This is when number is not between 1 - 9.
echo "-- oh oh, I got you a dollar !!! - File: $first"
esac
done < someTextLogFile.txt
欲了解更多信息,请在线学习BASH。
关于如何使用案例陈述的一个很好的例子是:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_03.html