首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将两位数的年份转换为四位数

将两位数的年份转换为四位数
EN

Stack Overflow用户
提问于 2019-07-07 23:21:46
回答 1查看 356关注 0票数 1

在bash中将两位数的年份转换为四位数

我有如下格式的文件: test96abcd.TXT我提取的是两位数的年份:

代码语言:javascript
复制
echo "test96abcd.TXT" | cut -c4-5

我希望能做这样的事情:

代码语言:javascript
复制
echo "test96abcd.TXT" | cut -c4-5 | date +%Y

但是它不工作,更不用说我会有一个...Y2K问题(当它是00时,我不知道它是1900年还是2000年),尽管我可以用“如果00使用2000”来手动处理这个异常。

但是有没有更好的方法来使用'date‘命令来处理这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-07 23:46:24

代码语言:javascript
复制
$ cat ../tst.sh
#!/bin/env bash

for old; do
    [[ $old =~ ^([^0-9]*)(([0-9]*).*) ]] || continue
    year=${BASH_REMATCH[3]}
    if (( year > 80 )); then
        cent='19'
    else
        cent='20'
    fi
    new="${BASH_REMATCH[1]}${cent}${BASH_REMATCH[2]}"
    mv -- "$old" "$new"
done

$ ls
test00abcd.txt  test17abcd.txt  test96abcd.txt

$ ../tst.sh *

$ ls
test1996abcd.txt  test2000abcd.txt  test2017abcd.txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56923486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档