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