🐧 Как вывести только целые слова при поиске файла с помощью grep в системах Linux |

🐧 Как вывести только целые слова при поиске файла с помощью grep в системах Linux

Мануал

Несколько очень полезных советов по grep для пользователя UNIX или Linux

Это очень полезный пример, как сделать так, чтобы grep не находил буквы перед началом поискового запроса “file*[s-t]”.

Оператор \b является маркером конца слова.

Вот как использовать тот же шаблон поиска и показать номера строк.

$ grep -n "\bfile*[s-t]\b" /usr/share/dict/words
46437:files
46438:filet
46439:filet's

Это также может быть очень полезно.

Другой пример:

 $ grep "\bope*[n-x]\b" /usr/share/dict/words
open
open's
opt

Как рекурсивно искать текстовые файлы в папках по определенной строке.

При этом будут искаться только текстовые файлы, а двоичные файлы будут пропущены.

$ grep -rn -InH --include "*.*" "address" /usr/include/net/
/usr/include/net/if.h:46:    IFF_BROADCAST = 0x2,	/* Broadcast address valid.  */
/usr/include/net/if.h:58:    IFF_NOARP = 0x80,		/* No address resolution protocol.  */
/usr/include/net/if.h:79:    IFF_DYNAMIC = 0x8000	/* Dialup device with changing addresses.  */
/usr/include/net/if.h:83:/* The ifaddr structure contains information about one address of an
/usr/include/net/if.h:84:   interface.  They are maintained by the different address families,
/usr/include/net/if.h:85:   are allocated and attached when an address is set, and are linked
/usr/include/net/if.h:86:   together so all addresses for an interface can be located.  */
/usr/include/net/if.h:97:    struct ifaddr *ifa_next;	/* Next address for interface.  */
/usr/include/net/if.h:100:# define ifa_broadaddr	ifa_ifu.ifu_broadaddr	/* broadcast address	*/
/usr/include/net/if.h:152:# define ifr_hwaddr	ifr_ifru.ifru_hwaddr	/* MAC address 		*/
/usr/include/net/if.h:153:# define ifr_addr	ifr_ifru.ifru_addr	/* address		*/
/usr/include/net/if.h:155:# define ifr_broadaddr	ifr_ifru.ifru_broadaddr	/* broadcast address	*/
/usr/include/net/if.h:185:# define ifc_buf	ifc_ifcu.ifcu_buf	/* Buffer address.  */
/usr/include/net/route.h:34:    struct sockaddr rt_dst;		/* Target address.  */
/usr/include/net/if_packet.h:25:/* This is the SOCK_PACKET address structure as used in Linux 2.0.
/usr/include/net/if_arp.h:55:    unsigned short int ar_hrd;		/* Format of hardware address.  */
/usr/include/net/if_arp.h:56:    unsigned short int ar_pro;		/* Format of protocol address.  */
/usr/include/net/if_arp.h:57:    unsigned char ar_hln;		/* Length of hardware address.  */
/usr/include/net/if_arp.h:58:    unsigned char ar_pln;		/* Length of protocol address.  */
/usr/include/net/if_arp.h:63:    unsigned char __ar_sha[ETH_ALEN];	/* Sender hardware address.  */
/usr/include/net/if_arp.h:64:    unsigned char __ar_sip[4];		/* Sender IP address.  */
/usr/include/net/if_arp.h:65:    unsigned char __ar_tha[ETH_ALEN];	/* Target hardware address.  */
/usr/include/net/if_arp.h:66:    unsigned char __ar_tip[4];		/* Target IP address.  */
/usr/include/net/if_arp.h:140:    struct sockaddr arp_pa;		/* Protocol address.  */
/usr/include/net/if_arp.h:141:    struct sockaddr arp_ha;		/* Hardware address.  */
/usr/include/net/if_arp.h:149:    struct sockaddr arp_pa;		/* Protocol address.  */
/usr/include/net/if_arp.h:150:    struct sockaddr arp_ha;		/* Hardware address.  */
/usr/include/net/if_arp.h:162:#define ATF_DONTPUB	0x40		/* Don't answer this addresses.  */
/usr/include/net/if_arp.h:174:    uint32_t ip;			/* IP address of entry.  */
/usr/include/net/if_arp.h:178:    unsigned char ha[MAX_ADDR_LEN];	/* Hardware address.  */
/usr/include/net/ethernet.h:31:/* This is a name for the 48 bit ethernet address available on many

Найдите все файлы jpeg в папке по заголовку файла JPEG.

$ grep -obUaP '\x4a\x46\x49\x46' *.*
Green-Jazz.jpg:6:JFIF
Grey-Jazz.jpg:6:JFIF
Ubuntu-MATE-Splash-Grey.jpg:6:JFIF
Ubuntu-MATE-Splash.jpg:6:JFIF

см. также:

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий