Can't get "grep -F" to work like real grep
Paul Gover
pmw.gover at yahoo.co.uk
Mon Dec 9 15:25:04 UTC 2019
<Appologies: re-sent as the previous version got corrupted by "rich text"
fields in the email>
I hope I'm doing something mindnumbingly stupid; grep -F output is not as
expected. Please can anyone spot the problem? Thanks.
(Background: I'm writing a script to manage kernel images in /boot, and want
to prevent the user deleting the kernel currently being executed.)
This is sys-apps/busybox-1.30.1 on Gentoo,
compared with sys-apps/busybox-1.30.1
all running on an amd64 box.
Running in /boot, where:
acer /boot # ls vmlinuz-*
vmlinuz-5.1.16-gentoorx570 vmlinuz-5.3.12-gentoorx570.new
acer /boot # uname -v
#6 SMP Sun Sep 29 00:17:32 BST 2019
Linux grep produces:
acer /boot # grep -Fl "#6 SMP Sun Sep 29 00:17:32 BST 2019" vmlinuz-*
vmlinuz-5.1.16-gentoorx570
whereas busybox grep produces no matches. Removing the -F fixes it:
acer /boot # busybox grep -l "#6 SMP Sun Sep 29 00:17:32 BST 2019" vmlinuz-*
vmlinuz-5.1.16-gentoorx570
In case it was some weird issue with globbing or UTF-8 etc.,
I tried:
acer /boot # uname -v > ver
acer /boot # busybox grep -Flf ver vmlinuz-*
Still no output, but:
acer /boot # busybox grep -lf ver vmlinuz-*
vmlinuz-5.1.16-gentoorx570
(I know "file vmlinuz" can pull the necessary info, but "file" isn't in busybox.
I'll listen to alternatives.)
More information about the busybox
mailing list