2012-07-09 62 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回答