Форум — Admin Перевернуть строку на bash 0 0 Не могу перевернуть строку вида 2008-07-06. Нужно получить 06-07-2008. Ни с 'rev' ни с 'sed' не получается ... Ссылка
echo "2008-07-06" | awk 'BEGIN { FS = "-" }; { print $3"-"$2"-"$1}' 06-07-2008 Uncle_Theodore ★★ (11.07.08 04:15:44 MSD) Ссылка
A="2008-07-06" B=( ${A//-/ } ) echo "${B[2]}-${B[1]}-${B[0]}" mky ★★★★★ (11.07.08 10:10:26 MSD) Ссылка
Можно и sed: $ echo 2008-07-06 | sed -e 's/\(.*\)-\(.*\)-\(.*\)/\3-\2-\1/' 06-07-2008 io ★★ (11.07.08 10:27:03 MSD) Ссылка
#include <stdio.h> #include <string.h> #include <stdlib.h> void reverse_substr(char *str, int len) { int i; for(i=0; i<len/2; ++i) { str[i] = str[len-i-1] - str[i]; str[len-i-1] = str[len-i-1] - str[i]; str[i] = str[len-i-1] + str[i]; } } int main(int argv, char **argc) { if (argv < 2) { puts("Argument required"); exit(1); } char *line = argc[1]; char *start, *end; reverse_substr(line, strlen(line)); start = end = line; do { if(*end == '.' || *end == 0) { reverse_substr(start, end-start); start = end+1; } } while(*end++); puts(line); } j262 ★★ (11.07.08 14:56:32 MSD) Показать ответ Ссылка