【发布时间】:2012-09-05 18:32:09
【问题描述】:
我在 Unix 环境中创建了一个脚本。在脚本中,我使用了如下所示的sed 命令从文件中删除了一些行。我想从文件中删除一组指定的行,不一定是简单的范围,由行号指定。
sed -i "101d; 102d; ... 4930d;" <file_name>
当我执行它时,它显示以下错误:
sed: Arg is too long
你能帮忙解决这个问题吗?
【问题讨论】:
-
我已经为您的
sed命令添加了必要的引号;请确认这是您正在使用的命令。您是要删除连续范围的行,还是删除任意行列表? (您显示的命令,假设...的合理替换,不会删除 4930 行;它将删除直到 #4930 的行)。 -
你能告诉我们确切你想删除哪些行吗?
-
@tripleee:这并不是真正的重复。这是一个类似的问题,但解决方案不一定相同。
-
你从哪里得到行号?如果它们是由不同的命令生成的,请将其直接通过管道传递到
sed,例如:cmd | sed 's/$/d/' | sed -f - file。