我们正在运行一个Ubuntu服务器,该服务器会自动从客户FTP文件,最近这些文件现在显示为...'file.csv;' 'file2.csv;
我一直在尝试,没有运气,制定bash和Python解决方案。我只是想去掉单引号和分号,并保留剩下的。这不必是bash,可以是python甚至是perl。我在下面包含了无效代码。我什至看不到目录清单。谁能指出我正确的方向?
for i in \'*
do
echo $i
done
注意:更正后的代码可以消除错误的$ echo'
find ... -exec rename
像这样使用:
find . -name "*[;']*" -exec rename "tr/';//d" {} \;
例:
# Create example input files:
$ touch "f'o''o'" "b;a;;r;" "b';a;'';z;'"
# Build the command by first confirming that `find` finds them all:
$ find . -name "*[;']*"
./f'o''o'
./b';a;'';z;'
./b;a;;r;
# Find and rename them, one by one:
$ find . -name "*[;']*" -exec rename "tr/';//d" {} \;
# Confirm that rename worked as expected:
$ ls -1rt | tail -n 3
foo
bar
baz
您也可以使用进行批量重命名以提高速度xargs
,例如
find ... -print0 | xargs -0 ...
但是对于您的情况,我认为一一重命名文件就足够了。
命令行实用程序rename
有多种形式。他们中的大多数应为此任务工作。我使用了rename
Aristotle Pagaltzis的1.601版本。要安装rename
,只需下载其Perl脚本并将其放入$PATH
。或rename
使用进行安装conda
,如下所示:
conda install rename
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句