2014-12-07 47 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