我现在有一个字符串如下:
integration@{Wed Nov 19 14:17:32 2014} branch: thebranch
Run Code Online (Sandbox Code Playgroud)
这包含在一个文件中,我解析了这个字符串.但是我想要括号之间的值{Wed Nov 19 14:17:32 2014}
我对Sed没有经验,说实话我发现它有点神秘.
到目前为止,我已经设法使用以下命令,但输出仍然是整个字符串.
我究竟做错了什么?
sed -e 's/[^/{]*"\([^/}]*\).*/\1/'
Run Code Online (Sandbox Code Playgroud)
要获取 之间的值{,}
$ sed 's/^[^{]*{\([^{}]*\)}.*/\1/' file
Wed Nov 19 14:17:32 2014
Run Code Online (Sandbox Code Playgroud)
这很简单awk,而不是复杂的正则表达式。
awk -F"{|}" '{print $2}' file
Wed Nov 19 14:17:32 2014
Run Code Online (Sandbox Code Playgroud)
它将字段分隔符设置为{or },那么您的数据将位于第二个字段中。
FS 可以这样设置:
awk -F"[{}]" '{print $2}' file
Run Code Online (Sandbox Code Playgroud)
查看所有字段:
awk -F"{|}" '{print "field#1="$1"\nfield#2="$2"\nfield#3="$3}' file
field#1=integration@
field#2=Wed Nov 19 14:17:32 2014
field#3= branch: thebranch
Run Code Online (Sandbox Code Playgroud)