Grep or sed - printing line only with exact match

Hello.

In my script, some command return :

q | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard
  | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard
  | kernel-default-base           | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default-base           | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard
  | kernel-default-base-debuginfo | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default-base-debuginfo | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard
  | kernel-default-debuginfo      | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default-debuginfo      | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard
  | kernel-default-debugsource    | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default-debugsource    | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard
v | kernel-default-devel          | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
v | kernel-default-devel          | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard
kernel-default-devel
v | kernel-default-devel          | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
v | kernel-default-devel          | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard

If my pattern is "kernel-default", I want only this

q | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard
  | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard

I want to print the full line.

I have tried :

grep -o
grep -w
grep  "/bxxxx/b"
grep  "/<xxxx/>"

Any help is welcome.

Hi,
Try:

grep "[[:blank:]]kernel-default[[:blank:]]"

Regards.

1 Like

Thank you very much

Hello jcdole,

Following may also help you in same.

awk -F"|" '($2 ~ /^ kernel-default [[:space:]]+/){print $0}'  Input_file

Output will be as follows.

q | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard
  | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard
  | kernel-default                | package | 3.19.0-1.1.g8a7d5f9 | i586   | openSUSE-13.2-Kernel_stable_standard

Thanks,
R. Singh