nar*_*yan 3 command-line grep filenames
我需要选择名称中包含“错误”或“流量”的文件,例如
abc_ERRor.csv
raError.csv
bsn_Error.csv
bbbctraffic.csv
ccc_traffic.csv
...
Run Code Online (Sandbox Code Playgroud)
并将其移动到相应的目录,如Error_directory并
traffic_directory根据他们的名字。
我试过这个,但没有用
mv $(ls test_file | grep -l 'Error>' *) Error_directory
Run Code Online (Sandbox Code Playgroud)
如何从命令行执行此操作?
ls test_file | grep 'Error'
Run Code Online (Sandbox Code Playgroud)
ls由于文件名中可能出现的字符范围很广,因此解析 的输出很少是一个好主意。更好的解决方案可能是:
find ./test_file -iname "*error*" -print0 | xargs -0 -I {} mv {} Error_directory
Run Code Online (Sandbox Code Playgroud)
注意-iname选项。这将返回不区分大小写的匹配,允许您查找和移动文件,例如:
abc_ERRor.csv
error_123.csv
ErRoR_77.csv
Run Code Online (Sandbox Code Playgroud)
如果您不需要不区分大小写的搜索,那么简单的事情就足够了:
mv test_file/*Error* Error_directory
Run Code Online (Sandbox Code Playgroud)
进一步阅读: