2012-07-09 58 views
25

好的打印特定指数的角色,所以我知道它是非常简单$打印线的具体参数:使用awk来一行

$ cat file 
hello world 

$ awk '{print $1}' file 
hello 

但是如果我想通过打印字符2 8?或3至7? awk有可能吗?

回答

42
awk '{print substr($0,2,6)}' file 

的语法SUBSTR()是

substr(string,start index,length)

+0

为什么字段分隔符'-F ='\ n''必要?或者是? – Levon 2012-07-09 18:55:47

+0

@Levon,因为我想OP希望找到整个记录的子串,而不是字段。 – nims 2012-07-09 19:11:25

+3

我有点困惑,不想争辩,只是为了让自己变得直截了当。 '$ 0'已经是整个当前行,所以如果你正在使用当前整行的子字符串,我不明白为什么你必须指定'-F' ..我在这里错过了什么? – Levon 2012-07-09 19:20:57

2

如果Perl是一个选项:

perl -lne 'print substr($_,1,6)' file 

输出是从相同@nims回答