Я хочу получить дату изменения файла, а затем отформатировать его в удобную для человека дату. Я запускаю программу на C, которая получает информацию о том, когда последний файл был последним. My C Code содержит sytem cmd, который содержит ряд egreps, awks, seds, разделенных трубами. Используя sed или awk или что-то подобное, как я могу конвертировать 06 в июне (это может быть любой месяц, так что массив или что-то требуется) Я пытаюсь добиться, чтобы в итоге получилась строка, похожая на:Форматировать метку времени в тексте
My C содержит:
char string1[100] = "";
#define MAXCHAR 100
FILE *fp;
char str[MAXCHAR], str2[MAXCHAR];
char* filename = "newfile";
/*
stat: run 'stat' on the dtlName file to display status information.
egrep: search for the pattern 'Modify' and print the lines containing it.
awk: Get columns 2 & 3
sed: replace the . with a space, leaving 3 columns of output
awk: only print cols 1 & 2 to newfile
sed: replace '-' with ' ' in newfile
awk: format output in newfile
*/
sprintf(string1, "/bin/stat %s \
| egrep Modify \
| /bin/awk '{print $2, $3}' \
| /bin/sed 's/\\./ /g' \
| /bin/awk '{print $1, $2}' \
| /bin/sed 's/-/ /g' \
| /bin/awk '{print $3,$2\", \"$1,\"at\",$4}' > newfile"
, dtlName);
system(string1);
fp = fopen(filename, "r");
while (fgets(str, MAXCHAR, fp) != NULL)
sprintf(str2,"%s", str);
/* Write information to file */
DisplayReportFile (report);
ReportEntry (report,L"Source file: %s, Created: %s\n\n",dtlName,str2);
не должно быть «sprintf (str,« ...>% s », ..., filename); '? –
Это действительно впечатляюще. –