「2016年6月2日木曜日08:11:53 PDT」の文字を切り取り、08 11のみ表示する方法

「2016年6月2日木曜日08:11:53 PDT」の文字を切り取り、08 11のみ表示する方法

「08 11」のみが表示されるように「Thu Jun 2 08:11:53 PDT 2016」の文字を切り取る方法

答え1

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

または:

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

または:

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

POSIXシェルを使用して変数に入れると、次のようになります。

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

コマンドの単純な出力の場合は、いくつかのパラメータを使用して実行して、必要なものを正確に出力できますdatedate

date '+%H %M'

ファイルや変数の場合は、他の人が述べたように、catまたはを使用echoできます。cutawksed

答え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

関連情報