替换前的 sed 输出

替换前的 sed 输出

我试图sed在替换输出时进行一些操作。具体情况如下:对于输出,Date:080910 111411我只想保留Date:XXXXXX并过滤掉剩余数字的空格。通常情况下, as/Date:[0-9]{6}//g就能解决问题,对吗?但Date:080910 111411输出来自curl我们从 API 检索它的命令。这是sed实际写的:

sed 's/;Submitted-on   *:/ Date:/g'

我一直在尝试过滤该输出,但我不明白在哪里可以使用 sed 来消磨过期的时间,只给我原始的 yymmdd 。

有人有什么想法吗?

答案1

  • 您是否记得设置-E扩展正则表达式的选项?否则,您需要编写\{6\}(基本正则表达式语法)
  • s/Date:[0-9]{6}//g将删除您实际上似乎想要保留的部分
  • 如果您想删除空格和后面的数字,请按照以下步骤操作:sed 's/ [0-9]*$//'

答案2

这只会保留Date:XXXXXX

echo "Date:080910 111411" | sed 's/ .*//'

这是更严格的,并且还保留以“日期:”开头:

echo "Date:080910 111411" | sed -r 's/^Date:([0-9]{6}) .*$/\1/'

相关内容