如何从“Thu Jun 2 08:11:53 PDT 2016”中剪切字符,以便仅显示 08 11

如何从“Thu Jun 2 08:11:53 PDT 2016”中剪切字符,以便仅显示 08 11

如何从“Thu Jun 2 08:11:53 PDT 2016”中剪切字符,以便仅显示“08 11”

答案1

cut -d ' ' -f 4 | cut -d : -f 1,2 | tr : ' '

或者:

awk -F '[ :]' '{print $4, $5}'

或者:

sed 's/.* \(..\):\(..\):.*/\1 \2/'

如果你把它放在一个变量中,使用 POSIX shell,你可以这样做:

string='Thu Jun 2 08:11:53 PDT 2016'
IFS=': ' # split on colon and space
set -f   # disable glob
set -- $string # use the split+glob operator (unquoted variable)
h_m="$4 $5"

答案2

如果它是命令的简单输出date,您可以date使用一些参数运行来准确输出您想要的内容:

date '+%H %M'

如果它是一个文件或变量,您可以catecho然后使用cut,awksed正如其他人提到的那样。

答案3

如果它是一个文件,那么使用它

# cat file
Thu Jun 2 08:11:53 PDT 2016
# cat file |  awk '{print $4}' | awk -F : '{print $1 " " $2}'
08 11

答案4

假设这是一个类似程序的输出date,因此字符串的宽度保持不变:

cut --output-delimiter=" " -c 11-12,14-15

相关内容