-
2021-05-10 02:02:10
另一个答案是伟大的,但而不是“相当怪”perl脚本我建议
perl -pe 's!([^/]+)$!lc $1!e'
它将小写只是路径的文件名部分。
编辑1:事实上,整个问题可以解决:
find . | perl -ne 's!([^/]+)$!lc $1!e; print if 1 == $seen{$_}++'
编辑3:我发现一个解决方案使用sed,sort和uniq也将打印出重复的,但它只有在文件名中没有空格时才有效:
find . |sed 's,\(.*\)/\(.*\)$,\1/\2\t\1/\L\2,'|sort|uniq -D -f 1|cut -f 1
编辑2:这里是一个更长的脚本,将打印出的名称,它需要一个列表的stdin,由给定的路径。不那么优雅,但还是:
#!/usr/bin/perl -w
use strict;
use warnings;
my %dup_series_per_dir;
while (<>) {
my ($dir, $file) = m!(.*/)?([^/]+?)$!;
push @{$dup_series_per_dir{$dir||'./'}{lc $file}}, $file;
}
for my $dir (sort keys %dup_series_per_dir) {
my @all_dup_series_in_dir = grep { @{$_} > 1 } values %{$dup_series_per_dir{$dir}};
for my $one_dup_series (@all_dup_series_in_dir) {
print "$dir\{" . join(',', sort @{$one_dup_series}) . "}\n";
}
}
更多相关内容 -
java实现动态上传多个文件并解决文件重名问题
2020-09-02 15:42:49主要为大家详细介绍了java实现动态上传多个文件,并解决文件重名问题的方法,感兴趣的小伙伴们可以参考一下 -
java中文件剪切,在目标目录里面遇见重名文件,自动重新命名。
2021-03-10 04:20:10在java中 ,使用renameTo方法剪切文件的时候,若目标文件中有重名的文件,程序会执行失败。为了解决这个问题,写出如下代码,实现文件自动编号。用到如下方法:1 . renameTo(File dest) 返回值类型为booleanRenames ...在java中 ,使用renameTo方法剪切文件的时候,若目标文件中有重名的文件,程序会执行失败。为了解决这个问题,写出如下代码,实现文件自动编号。
用到如下方法:
1 . renameTo(File dest) 返回值类型为boolean
Renames the file denoted by this abstract pathname.
2 . listFiles(FilenameFilter filter) 返回值类型为File[ ]
Returns an array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.
3 . getAbsolutePath() 返回值类型为String
Returns the absolute pathname string of this abstract pathname. 具体代码如下:
package File;
import java.io.File;
import java.io.FilenameFilter;
public class CopyRenameDemo {
/*
* 在挪动文件的时候如果遇见同问文件,
* 保留同名文件
* 将要挪过来的文件进行编号
*/
public static void main(String[] args) {
//新建文件,为即将要移动的文件
File file =new File("D:\\a.txt");
//新建文件,为移动的目标目录
File file2=new File("D:\\1");
//执行copy,获取目标目录;里面重名或者相同结构的文件的个数
copy(file,file2);
System.out.println(copy(file,file2));
//判断文件个数是否为0
if(copy(file,file2)==0){
//若文件个数为0,代表目标目录里面没有重名或者符合命名规则的文件,文件不需要重新命名
file.renameTo(new File(file2.getAbsolutePath()+"\\"+"a.txt"));
}
else
//若文件个数不为0,代表目标目录里面有重名或符合命名规则的文件,则按照命名规则将文件重新命名
file.renameTo(new File(file2.getAbsolutePath()+"\\"+"a-"+copy(file,file2)+".txt"));
}
private static int copy(File file, File file2) {
//筛选文件名字符合规格的文件,将其放入数组
File[]fs=file2.listFiles(new FilenameFilter() {
@Override
//规定筛选规则
public boolean accept(File dir, String name) {
return name.matches("a.txt|a-\\d.txt");
}
});
//返回值为数组的长度,为重名或者符合命名规则的文件个数
return fs.length;
}
}
-
android 中不同的Xml中id可以重名吗?
2021-01-26 14:32:29今天在做项目的时候,居然发现@+id 居然可以重名,而且情况一:同一个Xml文件中的同名在同一个Xml文件的中若同名了,则前一个有效,而后一个无效,as会报异常。如:android:id="@+id/button"android:layout_width=...今天在做项目的时候,居然发现@+id 居然可以重名,而且
情况一:同一个Xml文件中的同名
在同一个Xml文件的中若同名了,则前一个有效,而后一个无效,as会报异常。如:
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView1"
android:layout_alignRight="@+id/textView1"
android:layout_marginBottom="58dp"
android:layout_marginRight="18dp"
android:text="Button1" />
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button"
android:layout_centerVertical="true"
android:text="Button2" />
前一个Button有效(即 android:text="Button1" ),后一个异常。
情况二:在不同的Xml 文件中的同名
在不同的Xml文件中若id同名了,两者都有效的。
当android的工程越来越大。xml文件越来越多时,避免不了两个xml文件中同样的组件使用同样的id名字,gen目录下的R.java文件中,有关id的声明都在id的class中,即public static final class id{};当两个xml文件中同样的组件,比如Button,有可能很多个文件中,都有id=”@+id/Button”,开始以为在Java类中引用会重复的id造成程序的不识别。
后来写个demo测试发现,只需你先setContentView(R.layout.xxx);然后使用findViewById(R.id.Button);时,程序是可以识别的。
这个问题非常地容易理解:因为在Android的框架设计中,每一个控件都隶属于一棵控件树,每个控件都被其父控件所管理与调配,而根控件是一个容器控件,所有的子控件都是构造在这个根控件之上,这样并形成了一个控件树的控件域,在这个控件域中是不允许重名的,超出了这个控件域则这些控件的ID是无效的,也就是说在容器控件中的子控件是不允许重名的,而不在同一容器控件中的两个控件重名也无所谓。
-
Linux 文件和目录命令
2021-01-07 03:55:07在Liunx中不管是文件还是目录都不允许重名 rm rm -r的使用 rm -f的使用 拷贝和移动文件 tree tree -d的使用 只显示目录不显示文件 cp cp -i 覆盖文件前提示 cp -r的使用 mv 查看文件内容 1、cat适用于... -
4.3 ROS工作空间覆盖:不同工作空间中,存在重名的功能包的BUG
2022-03-31 18:45:53ROS工作空间覆盖:不同工作空间中,存在重名的功能包的BUG项目场景:
程序如下:
<!-- 需要启动多个乌龟GUI节点 --> <launch> <node pkg="turtlesim" type="turtlesim_node" name="turtlesim" /> <!-- 名称重映射 --> <node pkg="turtlesim" type="turtlesim_node" name="t1" /> <!-- 命名空间 --> <node pkg="turtlesim" type="turtlesim_node" name="turtlesim" ns="ergouzi" /> <!-- 命名空间+名称重映射 --> <node pkg="turtlesim" type="turtlesim_node" name="t2" ns="maolvzi" /> </launch>
在学习【奥特学园】ROS机器人入门课程《ROS理论与实践》零基础教程P162 节点名称重名_方式2 _launch文件时运行出错
问题描述:运行roslaunch rename01_node start_turtle.launch报错
ERROR: cannot launch node of type [turtlesim/turtlesim_node]: Cannot locate node of type [turtlesim_node] in package [turtlesim]. Make sure file exists in package path and permission is set to executable (chmod +x)
ERROR: cannot launch node of type [turtlesim/turtlesim_node]: Cannot locate node of type [turtlesim_node] in package [turtlesim]. Make sure file exists in package path and permission is set to executable (chmod +x)
ERROR: cannot launch node of type [turtlesim/turtlesim_node]: Cannot locate node of type [turtlesim_node] in package [turtlesim]. Make sure file exists in package path and permission is set to executable (chmod +x)
ERROR: cannot launch node of type [turtlesim/turtlesim_node]: Cannot locate node of type [turtlesim_node] in package [turtlesim]. Make sure file exists in package path and permission is set to executable (chmod +x)
我又运行了之前的roslaunch plumbing_test start_turtle.launch文件,还是报错!
ERROR: cannot launch node of type [turtlesim/turtlesim_node]: Cannot locate node of type [turtlesim_node] in package [turtlesim]. Make sure file exists in package path and permission is set to executable (chmod +x)
ERROR: cannot launch node of type [turtlesim/turtle_teleop_key]: Cannot locate node of type [turtle_teleop_key] in package [turtlesim]. Make sure file exists in package path and permission is set to executable (chmod +x)
我退出,重启电脑等,又启动roscore, rosrun turtlesim turtlesim_node,还是报错
[rosrun] Couldn't find executable named turtlesim_node below /opt/ros/noetic/share/turtlesim
原因分析:
1.我检查了代码没问题,配置环境没问题;
2.运行之前的roslaunch plumbing_test start_turtle.launch出问题了;
3.关机重启单独运行乌龟控制节点rosrun turtlesim turtlesim_node也报错
4.运行键盘控制节点rosrun turtlesim ,用tab只能自动补齐hello_ws2,明显是上一节课的重名的功能包turtlesim造成的
5.最后,查看ROS环境环境变量echo $ROS_PACKAGE_PATH,发现在 ROS PACKAGE PATH 中只包含两个工作空间(应该又3个,原本4个我注释掉了一个)
解决方案:删除自定义工作空间的 build 与 devel 目录
分析到这里,我想到了上一节课提到的BUG:
BUG 说明:
当在 .bashrc 文件中 source 多个工作空间后,可能出现的情况,在 ROS PACKAGE PATH 中只包含两个工作空间,可以删除自定义工作空间的 build 与 devel 目录,重新 catkin_make,然后重新载入 .bashrc 文件,问题解决。
然后删掉了工作空间的 build 与 devel 文件夹,重新编译后就正常了。(我把上节课demo03_ws下的turtlesim功能包也删掉了,demo01也打包成压缩包了,然后删掉了demo01_ws,以免又其他影响)
运行 roslaunch plumbing_test start_turtle.launch正常
运行roslaunch rename01_node start_turtle.launch正常
-
文件目录概述
2021-08-14 09:17:20在创建一个文件的时候,需要先检查目录表中有没有重名文件,确定不重名之后才能允许建立文件,并将新文件对应的目录项插入到目录表中。 两级目录结构: 分为主文件目录和用户文件目录 多级目录结构{又称为树形目录... -
Eclipse中导入包时重名文件问题
2020-03-23 21:35:151、Some projects cannot be imported because they already exist in the workspace 2、Some projects were hidden because they ...有时候eclipse或者myeclipse导入项目的时候会发生上面两个错误,IDE不允许我们... -
第5章 文件管理
2021-11-17 00:04:201-1树型目录结构能够解决文件重名问题。(2分) T F 1-2位示图方法可用于磁盘的调度管理。(2分) T F 1-3文件系统最基本的功能是实现按名存取。(2分) T F 1-4 单级目录结构能够解决文件重名问题。(2分) T F... -
使用java避免文本文件中的重复输出?
2021-03-22 15:32:50我有一个文本文件,其中包含以下记录:HAMADA 115599KARIM 224466BOSY 47896512此文件实际上定义了用户帐户的用户名和密码现在我写了一个简单的代码来编辑特定用户的密码。这是我的代码:import java.io.... -
android 中Xml里面的id重名问题
2021-06-10 16:17:58From: http://blog.csdn.net/luckyjda/article/details/8548127今天在做项目的...情况一:同个一个Xml文件中的同名在同个一个Xml文件的中若同名了,则前一个有效,而后一个无效,即后一个Null掉。如:android:id=... -
Android App 自定义权限重名不能安装解决办法
2021-01-17 18:01:01场景1.A 应用 有两个版本 第一个 正式版 第二个测试版 测试版的包名 = 正式版+test ,在Android studio 中 也就是 applicationId 。两个版本都可以成功的安装在手机上,也就是说 在手机上可以有 两个 A 应用。场景2... -
操作系统第七章复习
2021-06-10 00:00:39缺点是文件目录中不允许有重名,所以只适用于单用户的OS; 二级文件目录:分为主文件目录和用户文件目录,整个系统只有一个主目录,每个用户目录均在其中占有一个登记项,该项中含有用户目录名和位置、大小说明。其... -
请问 win7 系统出现很多同名重复文件是怎么回事啊?
2020-12-22 14:29:19如 在 firefox 目录下面,如下面第一个,目录下同时有AccessibleMarshal.dllAccessibleMarshal(WIN7-20150311NQ--Administrator--2015-07-09-09,56,27).dll这个是怎么回事?怎么处理呢?本来想在 Google 上搜索,不知道该... -
Java防重名
2021-09-09 19:22:47* @param fileNames 文件名列表 * @param substringFileName 需防重名文件名 * @param index 默认0 * @return */ public String getFileName(List<String> fileNames, String substringFileName, Intege... -
保存ipconfig所得ip地址到不重名的txt文件
2022-02-02 18:19:13想在外能够访问内网的PC,刚好有修改系统可以开通ipv6的小米路由器R3G和小米硬盘版路由器R2D,其中R3G负责提供ipv6网络,内部PC使用以下bat命令实现将ip存入到R2D,可以通过小米wifi软件外网访问R2D文件以读取PC的... -
FindDuplicateFiles:Powershell查找和删除重复文件
2021-04-04 18:32:50在Windows Powershell中发挥作用-它允许您在所有现代Windows计算机上运行脚本,而无需安装/导入任何内容。 注意力! 该脚本可以删除文件! 使用风险自负! 仅在了解脚本功能的情况下才使用该脚本。 如何使用 有两个... -
如何避免android layout.xml 布局文件中重名id的错误
2015-11-20 11:31:34在android 开发中,用来描述视图布局的layout.xml文件中,通常会涉及到控件或子布局的变量命名问题,有的...不同layout.xml文件的id重名 情况一 在同个一个Xml文件的中若同名了,则前一个有效,而后一个无效,即后一 -
C语言中的函数重名问题和解决方法
2021-04-16 15:00:49什么是函数重名问题? 在实际工作中,一个产品的代码是很复杂的,需要分层 -
文件目录管理程序
2021-07-18 02:42:51文件目录也是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用。文件目录管理程序是操作系统中用于检索、管理和存取目录的程序。文件目录管理程序主要作用是加快检索速度,从而实现文件读取更加快速和... -
老狗——目录管理与文件共享
2018-11-26 21:26:06目录管理与文件共享文件控制块—FCB一. 目录管理1)FCB内容2)索引结点3) 目录结构① 单级目录结构(Single-Level Directory)② 两级目录结构( Two-Level Directory )③ 多级目录结构4)目录查询技术二. 文件... -
cookie中出现重名的键
2019-06-19 10:48:39其中,不同的域、不同的路径下可以存在同样名字的cookie。一般我们设置cookie的方法是用一个同样名字、一个值。这时就一定要搞清楚你要设置的cookie的域和路径,否则就会产生问题中的情况。 再次复习一下Cookie的... -
Django防止图片重名
2019-06-25 08:42:47防止图片重名 def md5_(): #生成一个永不重复的 md5 = hashlib.md5() md5.update(str(time.time()).encode()) return md5.hexdigest() if file: base_path = settings.STATICFILES_DIRS[0] #拿到当前的静态目录 ... -
c语言问题 局部变量能不能和全局变量重名?
2020-07-09 10:58:09能,局部会屏蔽全bai局。要用全局变量,需要使用 "::" ; 局部du变量可以与全局变zhi量同名,在函数内dao引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些 编译器而言,在同一个函数内可以定义多... -
VB批量更改文件名(重命名)程序
2021-05-07 07:05:56内容索引:VB源码,文件操作,重命名,批量 一款小巧实用,功能超多的文件名批量更改(重命名)的程序,VB语言编写,它可以自动遍历目录,允许您选择文件属性、设置转换范围、大小写文件名转换、文件名空格字符处理等,... -
Feign调用报错,重名
2021-11-15 22:54:48APPLICATION FAILED TO START ...bean-definition-overriding=true 解决方案1: applicati.yml配置文件中添加允许重名 解决方案2: 把同一个微服务调用的不同feign接口内容写在一起 把俩个接口里的内容写在一起