如何从“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'
如果它是一个文件或变量,您可以cat
或echo
然后使用cut
,awk
或sed
正如其他人提到的那样。
答案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