我试图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/'