2014-12-07 53 views
2

bash脚本。我怎样才能得到一个简单的while循环要经过下面内容的文件,并剥离出在T所有的字符(包括T)使用的sedbash脚本去除一些字符

"2012-05-04T10:16:04Z" 
"2012-04-05T15:27:40Z" 
"2012-03-05T14:58:27Z" 
"2011-11-29T15:04:09Z" 
"2011-11-16T12:12:00Z" 

感谢

回答

2

通过战略经济对话

sed 's/"\|T.*//g' file 

"相配的双引号\|T.*从第一个T开始匹配所有字符到最后一个。用空字符串替换匹配的字符会给你所需的输出。

实施例:

$ echo '"2012-05-04T10:16:04Z"' | sed 's/"\|T.*//g' 
2012-05-04 
+0

谢谢....工作但只有一件事。仍然有最初的“从现在开始尝试 – del 2014-12-07 15:56:48

+0

,....... – 2014-12-07 15:59:25

+0

你可以同样删除”出来的结果文本。为了达到这个目的,在“T”之前知道你是否希望其他人“现在在场”可能很有趣。我知道所显示的代码没有。 – tvCa 2014-12-07 15:59:42

2

简单awk命令做到这一点:

awk -F '["T]' '{print $2}' file 
2012-05-04 
2012-04-05 
2012-03-05 
2011-11-29 
2011-11-16 
1

在bash内建的:

while IFS='T"' read -r a a b; do echo "$a"; done < filename 

输出:

 
2012-05-04 
2012-04-05 
2012-03-05 
2011-11-29 
2011-11-16