sed: 转换日期格式
sed: convert format of date
对 sed 相当陌生。我正在尝试编写一个将日期转换为相反日期的 sed 命令,但如果它们是其他单词的一部分则不会。
到目前为止我有:
sed 's/[0-9]\{1\}/[0-9]\{1\}/[0-9]\{4\}/SUBSTITUTE/g'
正在尝试找出替代部分。谢谢!
您需要使用单词边界。
sed 's~\b\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)\b~//~g' file
示例:
$ echo '04/13/1991hello' | sed 's~\b\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)\b~//~g'
04/13/1991hello
$ echo '02/03/2001' | sed 's~\b\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)\b~//~g'
2001/03/02
对 sed 相当陌生。我正在尝试编写一个将日期转换为相反日期的 sed 命令,但如果它们是其他单词的一部分则不会。
到目前为止我有:
sed 's/[0-9]\{1\}/[0-9]\{1\}/[0-9]\{4\}/SUBSTITUTE/g'
正在尝试找出替代部分。谢谢!
您需要使用单词边界。
sed 's~\b\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)\b~//~g' file
示例:
$ echo '04/13/1991hello' | sed 's~\b\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)\b~//~g'
04/13/1991hello
$ echo '02/03/2001' | sed 's~\b\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)\b~//~g'
2001/03/02