gpt4 book ai didi

bash - 通过读取文件作为 bash 中的输入来创建目录

转载 作者:行者123 更新时间:2023-11-29 09:21:55 26 4
gpt4 key购买 nike

我有一个输入文件 temp.txt,内容如下

  2013-08-13 /data/PSG/LZ/INVENTORY_FORECAST/load_date=2013-03-01
2013-08-14 /data/PSG/LZ/INVENTORY_FORECAST/load_date=2013-03-02
2013-08-15 /data/PSG/LZ/INVENTORY_FORECAST/load_date=2013-03-03
2013-07-30 /data/PSG/LZ/INVENTORY_FORECAST/load_date=2013-07-30
2013-07-31 /data/PSG/LZ/INVENTORY_FORECAST/load_date=2013-07-31
2013-08-16 /data/PSG/LZ/INVENTORY_FORECAST/load_date=2013-08-13

我需要遍历此文件并创建目录,并在行的开头指定日期,然后将日期后指定目录中的数据移动到此特定目录..

例如:对于第一行我需要做一个

mkdir "2013-08-13" 

然后

mv /data/PSG/LZ/INVENTORY_FORECAST/load_date=2013-03-01/  2013-08-13

我正在尝试用

  cat temp.txt | while read line ; do  mkdir "echo $line | awk '{print $0}'"; done;

尝试使用 line 作为数组使用

  cat temp.txt | while read line; do lineArray=($line) echo $line, ${lineArray[0]}, $lineArray[1];  done;

但这些似乎都不起作用..关于如何解决这个问题有什么想法吗?

最佳答案

您可以将行读入两个变量。例如:

while read -r date path # reads the lines of temp.txt one by one, 
# and sets the first word to the variable "date",
# and the remaining words to the variable "path"
do
mkdir -p -- "$date" # creates a directory named "$date".
mv -- "$path" "$date" # moves the file from the "$path" variable to the "$date folder"
done < temp.txt # here we set the input of the while loop to the temp.txt file

使用 -- 选项是为了如果文件以 - 开头,它不会被解释为选项,而是按字面意思处理。

-p--parents 使 mkdir 命令在目录存在时不抛出错误,并创建父目录如有必要。

关于bash - 通过读取文件作为 bash 中的输入来创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18257826/

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