使用sed或awk或grep从longline中提取字符范围?

时间:2010-06-13 17:01:46

标签: console sed awk grep unix

所以我有一个带字符的长行,例如一行中的数字[1-1024](没有“\ n”,“\ t”和“\ b”):

1 2 3 4 5 6 7 8 9 10 11 ... 1024

如何在46之后提取和打印字符,例如正好55个字符?所以输出将是:

47 48 49 ... 101

感谢。

4 个答案:

答案 0 :(得分:3)

这将查找字符串“Galeon-2b”并输出接下来的55个字符。

sed -n 's/.*Galeon-2b\(.\{55\}\).*/\1/p' backup.sql

答案 1 :(得分:1)

您可以使用cut实用程序。对于您的示例,以下命令将起作用。

cut -f 47-101 -d " " file_with_long_line

您还可以指定字节或字符位置,或更改分隔符字符串,具体取决于您的输入。

答案 2 :(得分:0)

为什么不使用cut

cut -d ' ' -f 46-101

答案 3 :(得分:0)

如果你真的想使用awk而不是cut,你可以设置RS =“”,并从那里相对正常地处理,每个数字作为一个单独的记录,就像它本身在一条线上一样。