Linux 用于打印字符串的一部分的命令?

Linux 用于打印字符串的一部分的命令?,linux,macos,unix,terminal,command,Linux,Macos,Unix,Terminal,Command,我有一个文件名test, 它包含一个字符串James Bond 007, 我只想打印《詹姆斯·邦德》。 我尝试了以下命令: $ strings -n 2 test $ sed -n '/James/,/Bond/p' test $ awk '{print substr($1,10)}' test 要打印前两个单词,可以使用awk: awk '{print $1, $2}' test awk '{print substr($0, 1, 10)}' test 要打印前十个字符,可以将文件内容放

我有一个文件名
test
, 它包含一个字符串
James Bond 007
, 我只想打印《詹姆斯·邦德》。 我尝试了以下命令:

$ strings -n 2 test
$ sed -n '/James/,/Bond/p' test
$ awk '{print substr($1,10)}' test

要打印前两个单词,可以使用
awk

awk '{print $1, $2}' test
awk '{print substr($0, 1, 10)}' test
要打印前十个字符,可以将文件内容放入变量中,然后使用
bash
子字符串操作:

contents=$(cat test)
echo "${contents:0:10}"
或在
awk
中:

awk '{print $1, $2}' test
awk '{print substr($0, 1, 10)}' test
请注意,
$0
表示整行,您必须为
substr()
提供起始索引和长度。
awk
中的索引从
1
开始,而不是从
0
开始


sed
中,
/James/,/Bond/
是行范围表达式;它处理从包含
James
的行开始到包含
Bond
的行的所有行。它不只是处理一部分行。

打印内容的一般标准是什么?前两个词,前10个字符?其中任何一个都可以,但我想知道这两个:)echo James Bond 007 | awk'{print$1”“$2}';echo James Bond 007 | cut-d”“-f1,2的可能副本等。