如果最后一个字符是奇数,则打印一个字符串

MO1*_*O12 4 string text-processing

我在文件中有一个主机名列表,并希望根据最后一个字符将它们分开。如果最后一个字符是奇数,则将主机名写入文件。我怎样才能在一个班轮中做到这一点?

例子:

abc123
abc124
abc348
abc435
Run Code Online (Sandbox Code Playgroud)

期望的输出:

abc123
abc435
Run Code Online (Sandbox Code Playgroud)

Rom*_*est 13

awk命令:

awk '/[13579]$/' file > hostnames_odd.txt
Run Code Online (Sandbox Code Playgroud)
  • [13579] - 表示允许数字列表的字符类(奇数)
  • $ - 字符串/行的结尾

结果:

$ cat hostnames_odd.txt 
abc123
abc435
Run Code Online (Sandbox Code Playgroud)

或与以下相同grep

grep '[13579]$' file  > hostnames_odd.txt
Run Code Online (Sandbox Code Playgroud)

如果某些行的末尾可能有空格,请将关键模式更改为以下内容: [13579][[:space:]]*$