From: TAKANO `takano32' Mitsuhiro Date: 2015-05-04T15:37:06+09:00 Subject: [ruby-list:50132] Re: sprintf のフォーマット man bash と info 探してみたましたが、 %(...)T 以外はまだ用途ないみたいです。 ``` printf [-v var] format [arguments] Write the formatted arguments to the standard output under the control of the format. The -v option causes the output to be assigned to the variable var rather than being printed to the standard output. The format is a character string which contains three types of objects: plain characters, which are simply copied to standard output, character escape sequences, which are converted and copied to the standard output, and format specifications, each of which causes print- ing of the next successive argument. In addition to the standard printf(1) format specifications, printf interprets the following exten- sions: %b causes printf to expand backslash escape sequences in the corresponding argument (except that \c terminates output, backslashes in \', \", and \? are not removed, and octal escapes beginning with \0 may contain up to four digits). %q causes printf to output the corresponding argument in a format that can be reused as shell input. %(datefmt)T causes printf to output the date-time string resulting from using datefmt as a format string for strftime(3). The corresponding argument is an integer representing the number of seconds since the epoch. Two special argument values may be used: -1 represents the current time, and -2 represents the time the shell was invoked. If no argument is specified, conversion behaves as if -1 had been given. This is an exception to the usual printf behavior. Arguments to non-string format specifiers are treated as C constants, except that a leading plus or minus sign is allowed, and if the leading character is a single or double quote, the value is the ASCII value of the following character. The format is reused as necessary to consume all of the arguments. If the format requires more arguments than are supplied, the extra format specifications behave as if a zero value or null string, as appropriate, had been supplied. The return value is zero on success, non-zero on failure. ``` 2015年5月4日 14:01 Nobuyoshi Nakada : > > > 2015年5月4日月曜日、Tanaka Akiraさんは書きました: >> >> bash の printf で、%(DATEFMT)T という例はあるようです。 >> >> $ printf '%(%F %T %z)T\n' 946652400 >> 2000-01-01 00:00:00 +0900 > > > なるほど。ところで%(...)はT以外でも使えるのでしょうか。