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