如何正确使用basename函数将文件重命名为其文件路径

时间:2018-07-07 15:34:00

标签: bash shell unix vi

我正在尝试使用basename函数突出显示文件的文件路径,该文件是包含日期的目录和子目录的列表,我想使用此文件路径并将其用于更正文件中所有损坏的日期在这些目录中,使用bash脚本,这是我当前拥有的:

#!/bin/bash

#function ChangexxToFilePath(){

path="~/filesToSort/*/*/*/*"
file=$(basename "$path")
grep "xx" ~/filesToSort/*/*/*/* | rev | cut -d'/' -f-4 | rev | tr 'xx' '$basename'
#}

我目前执行此操作的过程是grep所有文件,削减目录段以隔离日期,然后将具有任何xx值的文件转换为文件的路径名,尽管我必须指定更多而不是2 x,因为某些文件包含“ oxford”之类的位置,我不想让功能影响这些。

这是对基名称的正确使用还是我使用的错误? 我确实也考虑过使用以下代码:

grep "xx" ~/filesToSort/*/*/*/* | rev | cut -d'/' -f-4 | rev | tee AllInvalidDates

为了将其中所有大于1 x的所有文件放入一个名为AllInvalidDates的文件中,然后使用该文件在该文件中找到被调用的目录中的文件,然后将名称替换为文件路径这样,尽管我在想,也许这种方法可能会使它变得比原来困难得多

谢谢!

0 个答案:

没有答案