我需要创建一个脚本,该脚本将通过并向多个目录中的所有文件添加下划线,忽略已经有前缀的文件。例如,_file1, _file2, file3, file4
需要看起来像_file1, _file2, _file3, _file4
我对Unix脚本知之甚少,所以非常感谢一个简单的解释!
答案 0 :(得分:1)
你可以使用这样一个衬垫:
import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
其中dir_with_files是搜索文件的上部目录。然后它找到名称不是从_开始的文件,并且每个文件都被重命名。
在进行任何更改之前,您可以使用params -n -v重命名,显示将执行的操作,而不实际执行它们。
find dir_with_files -regextype posix-extended -type f -regex '^.*\/[^_][^\/]*$' -exec rename -v 's/^(.*\/)([^_][^\/]*)$/$1_$2/' '{}' \;
答案 1 :(得分:0)