bash - 查找单行文件并将它们移动到子文件夹
问题描述
我正在使用以下 bash 行在子文件夹中查找具有给定模式的文本文件并将它们移动到子文件夹:
find originalFolder/ -maxdepth 1 -type f -exec grep -q 'mySpecificPattern' {} \; -exec mv -i {} destinationFolder/ \;
现在,如果文件只包含一行(文本),我想将文件移动到子文件夹,而不是 grepping 模式:我该怎么做?
解决方案
你可以这样做:
while IFS= read -r -d '' file; do
[[ $(wc -l < "$file") -eq 1 ]] && echo mv -i "$file" destinationFolder/
done < <(find originalFolder/ -maxdepth 1 -type f -print0)
注意echo
前面的使用,mv
以便您可以在实际执行之前验证输出mv
。对输出满意后,删除echo
before mv
。
推荐阅读
- thymeleaf - Thymeleaf ..如何使用 th:replace 在一个页面之间传递参数到另一个页面
- java - YT 视频同步观看后台
- angular - Angular Material中的下拉菜单问题
- ios - VNDetectFaceLandmarksRequest 在带有 iOS 14 模拟器的 m1 mac 上不起作用?(未指定的错误)
- discord.js - discord.js 检查用户和机器人是否在同一个语音通道中
- c++ - 调试一个简单的函数
- algorithm - 算法求助:给定一个num,最后能不能是1
- python - 我无法通过 AWS SES 发送带有主题的电子邮件
- javascript - 删除滑动延迟香草js
- javascript - 未捕获的类型错误:$(...).popover 不是函数