首页 > 解决方案 > 我需要帮助以 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”。

标签: bashshell

解决方案


首先,您需要使用双引号"和 sed 来扩展 shell 变量,并且由于ip是在一起的,所以您需要使用{}将变量与其他东西分开。

IE

sed -n "${i}p"

其次,sed 可以自己完成这项任务:

sed 'n;d' file

试试这个,看看是不是你想要的:

sed 'n;d' EvsKpoint_Sn.dat >> EvsKsep.dat

推荐阅读