2015-06-13 2 views
1

Мой выход выглядит, как показано нижеAWK сценария для устранения специальных символов

judi# *diff -C 0 $* mountYday mountTday 
*** mountYday Sat Jun 13 02:57:09 2015 
--- mountTday Sat Jun 13 02:59:49 2015 
*************** 
*** 20 **** 
- /test on /dev/vx/dsk/test/test read/write/setuid/devices/intr/largefiles/logging/xattr/onerror=panic/dev=48986a5 on Wed Apr 22 22:28:04 2015 
--- 19 ---- 
judi# 

мне нужно получить только линия начинается с одного «-». Выход должен быть

- /test on /dev/vx/dsk/test/test read/write/setuid/devices/intr/largefiles/logging/xattr/onerror=panic/dev=48986a5 on Wed Apr 22 22:28:04 2015 

Я в состоянии устранить первые две строки с использованием AWK:

*# diff -C 0 $* mountYday mountTday | awk '! /mount/'* 

*************** 
*** 20 **** 
- /ora03/oradata1 on /dev/vx/dsk/GRPA056L/ora03-oradata1 read/write/setuid/devices/intr/largefiles/logging/xattr/onerror=panic/dev=48986a5 on Wed Apr 22 22:28:04 2015 
--- 19 ---- 

Как удалить строки начинается с *** и --- (ровно 3 *** и ---) и *************** (15 символов)? Я пытаюсь с awk в одной команде.

ответ

2

Вместо удаления символов, которые вам не нужны, как насчет команды, чтобы найти нужного вам персонажа? Строка, которую вы хотите, - это «начало строки, за которой следует один, а затем пробел».

$ diff -C 0 $* mountYday mountTday | awk /-/{print $0} 

Этот вид извлечения шаблона больше подходит для Grep:

$ diff -C 0 $* mountYday mountTday | grep '^- ' 
+0

Спасибо ... Это один работает #diff -C 0 $ * mountYday mountTday | grep '^ -' .. Я пропустил заметить пространство после - ... Спасибо большое Rob – judi

Смежные вопросы