我有一个文本文件,只想从第11行中删除字符23-28:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
因此结果将是:
Lorem ipsum dolor sit consectetur adipiscing elit.
这可以通过sed,awk或cut命令完成吗?
答案 0 :(得分:3)
sed
也可以做到这一点。
sed -E '11 s/^(.{22}).{6}(.*)/\1\2/' file
在第11行上(准确地),记住前22个字符,忽略下6个字符,记住其余的行。用记住的零件代替线。
在其他任何地方,都按原样打印。
答案 1 :(得分:2)
请您尝试以下操作(由于未提供示例,因此无法对其进行测试)。另外,我还假设您需要从第11行开始直到Input_file的最后一行执行此操作。
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
答案 2 :(得分:1)
awk 'NR==11{$0=substr($0,1,22) substr($0,29)} 1' file