我要修改的行是大力水手的生日 我们必须假设我们不知道他的生日。
这就是我所做的,但它不起作用。
sed '/Popeye/s/[0-9]\/[0-9][0-9]\/[0-9][0-9]/[1][1]\/[1][4]\/[4][6]' DDdatebook
输入:
Popeye Sailor:156-454-3322:945 Bluto Street, Anywhere, USA 29358:3/19/35:22350
最佳答案
sed '/Popeye/ s#:[0-9]\{1,2\}/[0-9]\{1,2\}/\([0-9]\{2\}\)\{1,2\}:#:[1][1]/[1][4]/[4][6]:#' YourFile
- 你忘记了最后一个分隔符
- 我建议使用
/
之外的另一个,因为模式中存在,我在这种情况下选择#
,这样内部/
就不必转义。 - 我添加了一个广泛的数字模式,允许 1 或 2 位数字表示日/月,2 或 4 位数字表示年份(最后一个似乎只是 2,但以防万一或删除第二个选项)
关于linux - 如果只提供了名字,我将如何使用 sed 更改某人的生日?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28957265/