我的输出如下所示
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。
答案 0 :(得分:2)
不是删除你不想要的字符,而是找到你想要的字符的命令怎么样?你想要的线是"线的起点,后面跟一个 - ,然后是空格"。
$ diff -C 0 $* mountYday mountTday | awk /- / {print $0}
这种模式提取更适合grep:
$ diff -C 0 $* mountYday mountTday | grep '^- '