gpt4 book ai didi

linux - 如果文件名不正确,则将其移至错误文件夹

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:22 25 4
gpt4 key购买 nike

在这种情况下,我需要检查保存文件以进行迁移的文件夹中的文件名。

如果文件名与名称不匹配,我们建议客户提供然后将其移动到错误文件夹。此外,同一文件夹中可能有多个文件,因此我只需要选择与我要查找的字符串不匹配的文件。

我有这个可以告诉我文件名是否正确

if [ ! -f /data/cmts_map_*.csv ]; 
then
echo "File not found"
fi

但现在我卡住了,好像假设有文件夹数据

    data]$cs_map_13672.csv
dhcp_map_5485.csv
link_map_875485.csv

所以在数据文件夹中我有 3 个文件,其中第一个文件名不正确,其余两个文件名正确。因此,不正确的文件应该移动到错误的文件夹中,我只能识别并为此打印一条消息,但遇到了问题,比如如何选择唯一要移动的第一个文件。

我还为每个文件设置了 thre 个 block 来处理这样的迁移

FILE=`ls ./data/cmts_map_*.csv`
FILE_CMTS=$(basename $FILE)
mv ./data/$FILE_CMTS ./data/cmts_data.csv

FILE=`ls ./data/dhcp_map_*.csv`
FILE_DHCP=$(basename $FILE)
mv ./data/$FILE_DHCP ./data/dhcp_data.csv

FILE=`ls ./data/*_link_*.csv`
FILE_LINK=$(basename $FILE)
mv ./data/$FILE_LINK ./data/link_data.csv

所以这是我原始脚本的一小部分,我在其中检查文件名并轻松重命名它们。

我要补充

if [ ! -f /data/cmts_map_*.csv ]; 
then
echo "File not found"
mv ?
fi
FILE=`ls ./data/cmts_map_*.csv`
FILE_CMTS=$(basename $FILE)
mv ./data/$FILE_CMTS ./data/cmts_data.csv

因为我们不确定不正确的名字可能是什么!

如果需要更多信息,请告诉我。

最佳答案

我建议你使用查找:

find . -type f -not -name 'cmts_map_*.csv' -exec mv -t ./badfolder/ {} \+

更新:

要移动与父/badfolder/目录中的三种模式之一匹配的文件,并为每个文件添加一个 .bad 扩展名:

find . -type f ! -name 'dhcp_map_*.csv' ! -name 'cmts_map_*.csv' ! -name '*_link_*.csv' -exec mv '{}' ../badfolder/'{}'.bad \;

关于linux - 如果文件名不正确,则将其移至错误文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620197/

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