Linux:在每行打印特定的字符范围

Linux:在每行打印特定的字符范围

使用 Linux 命令行实用程序在 stdin 上读取的每一行打印特定范围的字符的最直接的方法是什么?

例如,对于此输入文件:

1234567890
0987654321

它的工作原理如下:

> cat input_file | foo 3-6
3456
8765

答案1

回答了我自己的问题......这比我想象的要容易得多:

cut -c 3-6

答案2

shell cut-打印特定范围的字符或字符串中的给定部分

#方法 1) 使用 bash

 str=2020-08-08T07:40:00.000Z
 echo ${str:11:8}

#方法2)使用 cut

 str=2020-08-08T07:40:00.000Z
 cut -c12-19 <<< $str

#方法3) 使用 awk 时

 str=2020-08-08T07:40:00.000Z
 awk '{time=gensub(/.{11}(.{8}).*/,"\\1","g",$1); print time}' <<< $str

相关内容