用于删除一些字符的bash脚本

时间:2014-12-07 15:52:05

标签: linux bash sed

Bash脚本。如何使用简单的while循环来浏览具有以下内容的文件,并使用sed从T(包括T)中删除所有字符

"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"

由于

3 个答案:

答案 0 :(得分:2)

通过sed,

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

"匹配双引号\|T.*从第一个T开始匹配所有字符到最后一个。用空字符串替换匹配的字符将为您提供所需的输出。

示例:

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

答案 1 :(得分:2)

执行此操作的简单awk命令:

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

答案 2 :(得分:1)

使用bash builtins:

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