43

好的,所以我知道使用 $ 打印行的特定参数非常简单:

$ cat file
hello world

$ awk '{print $1}' file
hello

但是如果我想打印字符 2 到 8 怎么办?还是 3 到 7?用awk可以吗?

4

3 回答 3

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

substr() 的语法是

substr(string,start index,length)

于 2012-07-09T18:45:14.903 回答
3

是的。您可以使用substr功能:

http://www.starlink.rl.ac.uk/docs/sc4.htx/node38.html

在您的情况下 - 对于从 2 到 8 的打印字符:

echo "hello" | awk '{ print substr( $0, 2, 6 ) }'

结果是:

你好

于 2012-07-09T18:53:46.273 回答
2

如果 Perl 是一个选项:

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

输出与@nims 的回答相同

于 2015-10-07T00:47:42.700 回答