Отформатируйте вывод журнала git с помощью sed, awk и т. П. - PullRequest
1 голос
/ 22 сентября 2011

Если у меня есть вывод, как это (из настроенного журнала Git)

d1fd022 2011-09-21 17:02:26 -0400       Replace double quotes with single quotes.
7227fe4 2011-09-21 13:57:36 -0400       Add automatic CommandTFlush to mkdir/rm/touch/cd

Как вы могли бы передать это через sed, awk или подобное для достижения этого результата?

d1fd022 2011-09-21 17:02       Replace double quotes with single quotes.
7227fe4 2011-09-21 13:57       Add automatic CommandTFlush to mkdir/rm/touch/cd

Здесь единственная разница в том, что секунды и часовой пояс вырезаны из даты. К сожалению, git, похоже, не поддерживает пользовательские форматы дат, и я не очень хорошо разбираюсь в sed, поэтому нужна помощь.

Ответы [ 3 ]

2 голосов
/ 23 сентября 2011

Я предлагаю использовать cut (POSIX):

[guest@pawel] ~ $ cut -c 1-24,34- foo.txt  
d1fd022 2011-09-21 17:02       Replace double quotes with single quotes.
7227fe4 2011-09-21 13:57       Add automatic CommandTFlush to mkdir/rm/touch/cd
1 голос
/ 22 сентября 2011

awk версия:

awk -F':[0-9][0-9] | ' '{$4=""}1' inputFile

тест:

kent$  echo "d1fd022 2011-09-21 17:02:26 -0400       Replace double quotes with single quotes.
7227fe4 2011-09-21 13:57:36 -0400       Add automatic CommandTFlush to mkdir/rm/touch/cd"|awk -F':[0-9][0-9] | ' '{$4=""}1'

d1fd022 2011-09-21 17:02        Replace double quotes with single quotes.
7227fe4 2011-09-21 13:57        Add automatic CommandTFlush to mkdir/rm/touch/cd
0 голосов
/ 22 сентября 2011
sed 's/:[^:]* -[^     ]*//' infile

Исправлено (это не пробел, это табуляция).

...