2014-12-07 3 views
2

Bash scripting. Как я могу получить простой, а цикл, чтобы пройти через файл с ниже содержанием и вырезать все символы из T (включая T) с использованием СЭДсценарий bash для выделения некоторых символов

"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

+0

попробуйте сейчас, ....... –

+0

Вы также можете удалить« из полученного текста ». Для того, чтобы работать, может быть интересно узнать, ожидаете ли вы, что другие «будут присутствовать до« Т ». Я знаю, что показанный код этого не делает. – tvCa

2

Простая команда AWK, чтобы сделать это:

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

С Баш встроенных команд:

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 
Смежные вопросы