bash - 我需要帮助以 shell 脚本中的奇数行分隔我的 .dat 文件
问题描述
我有这个EvsKpoint_Sn.dat
有 30 行的 .dat ( ) 文件,我需要将奇数行分隔到不同的文件中。
我已经制作了下面的代码,但它没有按我的预期工作。
#!/bin/bash
for i in $(seq 1 2 29)
do
sed -n '$ip' EvsKpoint_Sn.dat >> EvsKsep.dat
done
它在输出文件中只返回很多“p”。
解决方案
首先,您需要使用双引号"
和 sed 来扩展 shell 变量,并且由于ip
是在一起的,所以您需要使用{}
将变量与其他东西分开。
IE
sed -n "${i}p"
其次,sed 可以自己完成这项任务:
sed 'n;d' file
试试这个,看看是不是你想要的:
sed 'n;d' EvsKpoint_Sn.dat >> EvsKsep.dat
推荐阅读
- linux - 获取存储在文件中的变量的值
- android - Google 已压缩您的应用程序。通过大小压缩,某些配置现在在 0MB 大小限制内
- synchronization - perforce p4 与 -x 选项性能
- laravel - Laravel Sail SQL 连接超时
- angular - 如何设置复杂 FormArray 反应形式的值
- reactjs - 如何制作带有 2 个或更多“slug”的路线?(React-Router-Dom)
- sql-server - SQL Server 2008 上的 ServiceStack ORMLite 分页
- javascript - 使用 js 更改页面上的所有 css 选择器
- node.js - Firestore 的数据库建模。集合 - 类别
- css - css对象模型中禁用属性的样式