BASH/AWK如何在给定的文本文件中将所有日期dd.mm.yyyy日期替换为dd月yy
如主题中所述,如何使用bash/awk在给定文本文件中仅替换格式为date dd.mm.yyyy的日期到格式为dd month yyy where month的日期(如02至2月等) 输入文件:BASH/AWK如何在给定的文本文件中将所有日期dd.mm.yyyy日期替换为dd月yy,bash,awk,Bash,Awk,如主题中所述,如何使用bash/awk在给定文本文件中仅替换格式为date dd.mm.yyyy的日期到格式为dd month yyy where month的日期(如02至2月等) 输入文件: kandal w Rosji. "Polacy są niezbyt kreatywni 12.12.2032 43.12.4521 Dramatyczne wyznanie córki gen. Jaruzelskiego Politycy chcą, 23/32/3211 by Tusk przep
kandal w Rosji. "Polacy są niezbyt kreatywni 12.12.2032
43.12.4521 Dramatyczne wyznanie córki gen. Jaruzelskiego
Politycy chcą,
23/32/3211 by Tusk przeprosił Benedykta XVI
Nie żyje wybitny historyk prof. Andrzej Garlicki
Polityk PiS: Śląsk należy przywrócić Polsce
您可以使用gnu awk的(gawk)时间功能,如下所示:
echo "18.11.2012" | awk -F"." '{t=mktime($3 " " $2 " " $1 " 00 00 00");
print strftime("%d %B %Y", t)}'
现场演示:
根据需要使用FS而不是-F:
awk 'BEGIN {FS="."} {t=mktime($3 " " $2 " " $1 " 00 00 00");
print strftime("%d %B %Y", t)}'
更新:(使用输入文件的脚本)
awk'{
对于(i=1;i)您在以下哪一步遇到问题:提取格式为dd.mm.yyyyy
的日期,或者将这样的日期转换为dd month yyyyy
?首先,我不知道如何访问文件,我知道如何在给定目录中执行某些操作,但不知道如何在文件中执行操作,我从这里开始?是否将文件作为输入?#!/bin/bash if[$#ne 1].[!-f$1]然后echo给出文本文件作为输入,退出1 fialso我没有使用权限-F@Vardius:答案是向您展示如何按照您在问题中提出的要求完成任务。请随意传入一个文件并在输入文件上运行awk脚本。现在如何从文本文件中以dd.mm.yyyy的形式获取特定日期?@Vardius:如果您可以粘贴小sni关于你的问题,我可以帮你解决。
awk '{
for(i=1; i<=NF; i++) {
if ($i ~ /[0-9][0-9]\.[0-9][0-9]\.[1-9][0-9][0-9][0-9]/) {
split($i, a, ".");
t=mktime(a[3] " " a[2] " " a[1] " 00 00 00");
if (t == -1)
printf("%s", $i);
else
printf("%s", strftime("%d %B %Y", t));
}
else
printf("%s", $i);
if (i<NF)
printf(" ");
}
printf("\n");
}' inputFile