"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

명령의 간단한 출력인 경우 일부 매개변수를 사용하여 실행하여 원하는 것을 정확하게 출력할 date수 있습니다 .date

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

관련 정보