Awk Bash:从特定行中删除特定字符范围

Awk Bash:从特定行中删除特定字符范围,awk,Awk,我有一个文本文件,只想删除第11行中的23-28个字符: Lorem ipsum dolor sit amet, consectetur adipiscing elit. 因此,结果将是: Lorem ipsum dolor sit consectetur adipiscing elit. 这可以通过sed、awk或cut命令完成吗?请尝试以下操作(因为没有提供样本,所以无法测试)。我还假设您需要从输入文件的第11行开始执行此操作,直到最后一行 awk 'FNR>10{print su

我有一个文本文件,只想删除第11行中的23-28个字符:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
因此,结果将是:

Lorem ipsum dolor sit consectetur adipiscing elit.

这可以通过sed、awk或cut命令完成吗?

请尝试以下操作(因为没有提供样本,所以无法测试)。我还假设您需要从输入文件的第11行开始执行此操作,直到最后一行

awk 'FNR>10{print substr($0,1,22) substr($0,29);next} 1'   Input_file
如果您想删除第11行中23到28个字符,请尝试以下操作

awk 'FNR==11{print substr($0,1,22) substr($0,29);next} 1'   Input_file

sed
也可以这样做

sed -E '11 s/^(.{22}).{6}(.*)/\1\2/' file
在第11行(准确地说),记住前22个字符,忽略下一个6,记住这行的其余部分。用记忆中的零件更换管路


在其他地方,只需按原样打印。

欢迎使用SO,我们建议您在帖子中使用代码标签{}按钮,在帖子中提及您为解决此问题所付出的努力。您的问题是如何显示简洁、可测试的样本输入和预期输出。OP说的是第11行,而不是10后的每一行。@EdMorton,我在post Ed sir中读到的是第11行的
,所以我也做了同样的事情。我读的是
我想从第11行中删除X
。我猜当OP开始提供示例输入/输出时,我们会看到她发布了什么。是的,我想特别从第11行删除。
sed -E '11 s/^(.{22}).{6}(.*)/\1\2/' file