sed - sed * 只修改第一个文件
问题描述
我想删除大量 ASCII 文件的前 40 行并保存没有这 40 行的 ASCII 文件
我在 OSX High Sierra 下工作,意识到除非我创建备份文件,否则该-i
选项sed
不起作用,所以我尝试使用以下命令:
sed -i'backup' -e '1,40d' *.txt
然而,它只修改和删除我的第一个文件中的前 40 行(按字母顺序),而不是其他行。
如何只用一个命令编辑多个文件?
谢谢
解决方案
您可以使用以下命令
- 查看当前文件夹
- 忽略子文件夹
- 仅考虑文件名以 '*.txt' 结尾的文件
- 在执行
sed
命令之前。
命令:
find . -maxdepth 1 -type f -name '*.txt' -exec sed -i 'backup' -e '1,40d' {} \;
推荐阅读
- swift - Swift:在 swiftui 视图中检索结构值不起作用
- javascript - FullCalendar 定期事件
- html - 为什么 div 在 chrome 浏览器中的 flex-holder 内不使用 transform3d 垂直居中?
- sql - 如何在 Oracle 中汇总行?
- javascript - Angular formControlName - 反应形式 - 将值设置为 primeNg p-dropdown
- r - Geom_line 产生带有分组的垂直线
- ecmascript-6 - 在 JavaScript 三元运算中不计算 null 值
- angular - 在表格中显示多个 Angular 表单数据
- c# - 具有相同属性但类型不同的多个类
- c++ - 使用 Eigen 库中的 SVD 时抛出错误的分配异常