我可以删除特定格式的文本并缩短或更长的文本sed '/^.\{25\}..*/d' -i FILE
,但如何合并在sed模式和长度?如何删除某个文件中符合特定格式并长于或短于特定长度的文件中的行
含有A
系应该是包含B
应该是包含C
应该是所有其他线3和字符
之间8
线10和15个字符之间
线20和字符之间25应从文件中删除
1234567890 A 1234567890
12345 A 12345
1 A 1
1234567890 B 1234567890
12345 B 12345
1 B 1
1234567890 C 1234567890
12345 C 12345
1 C 1
从而使输出应该是这样的
1234567890 A 1234567890
12345 B 12345
1 C 1
考虑使用一个变量,而不是每行调用'length()'最多6次,所有的'*'都不做任何事情。 –
@EdMorton:好主意。但是,除非我知道O.P.是否可以使用'awk'解决方案,否则不想花费更多时间。此外,这将需要使用“{if(...)....}”的查看形式。是不是模式/动作形式的首选; - >?我明天会为你的想法添加一个编辑。祝你们好运。 – shellter
这只是对{n = length()}/A /&&n> 19 && n <26 ||的调整。 ....'。 –