grep: A Practical Guide

Поділитися
Вставка
  • Опубліковано 3 жов 2024
  • A quick guide on getting better with grep and its more popular uses.

КОМЕНТАРІ • 163

  • @buysnoah
    @buysnoah 8 місяців тому +304

    Who up grepping they file rn

    • @navekeng
      @navekeng  8 місяців тому +10

      lol

    • @ekinakkaya9257
      @ekinakkaya9257 8 місяців тому +21

      i'm grepping my log files so hard rn

    • @eklipsed9254
      @eklipsed9254 8 місяців тому +2

      Noah?!!!!!

    • @buysnoah
      @buysnoah 8 місяців тому +1

      @@eklipsed9254 ?

    • @chair547
      @chair547 8 місяців тому +1

      When she grep on my file til I segfault

  • @amandasandell3351
    @amandasandell3351 8 місяців тому +82

    now THIS is the kind of tutorial video i'd like to see more often. Straight to the point, no boilerplate, explain a concept and show an example. Very educational and useful

    • @navekeng
      @navekeng  8 місяців тому +4

      Thanks! I appreciate it, more to come 😄

  • @leonardofralini6398
    @leonardofralini6398 8 місяців тому +36

    No useless talks, great content with examples, good video and audio quality.
    Nice job! You earned a sub
    Keep it up!

    • @navekeng
      @navekeng  8 місяців тому +3

      Tytyty 🫡

  • @diceandbricks
    @diceandbricks 7 місяців тому +9

    I like how you focus on a single command and give a very helpful overview. So many other "10 great linux commands" videos don't give enough detail for me to retain them. This is much better.

    • @navekeng
      @navekeng  7 місяців тому +1

      Much appreciated!

  • @potatochannel1948
    @potatochannel1948 Місяць тому

    Man, the last example is like the one that you taek at the end of lecture, the prof blows out your mind then tells you "time's up, we'll continue next lecture!" and then runs away lol.
    Thanks for the tutorial!

  • @MamToCos
    @MamToCos Місяць тому

    I have seen almost all your content. You can easily explain quite hard issues. Greetings.Thank you.

  • @hasib927
    @hasib927 8 місяців тому +7

    Really loved the video, very comprehensive yet quite short. Please keep posting more videos.
    Two useful flags that I would've love to see: -R and -n.

    • @navekeng
      @navekeng  8 місяців тому +2

      good points, I didn't touch -n and I ended up cutting -R for time and brevity
      but there is a good point for its importance and should of figured out how to fit it in

  • @abhishekvenkat9585
    @abhishekvenkat9585 7 місяців тому

    Honesty I have known grep for like a decade and use it literally daily for half of that decade but watching this made me realise what all I was missing on. Thanks for the video.

  • @monkeecrap
    @monkeecrap 7 місяців тому +5

    You absolute gigachad. This was amazing, thank you. 🙏

    • @navekeng
      @navekeng  7 місяців тому +2

      Glad you enjoyed it!

  • @thewadegreen
    @thewadegreen 8 місяців тому +4

    I subbed when he said "the alligators", hilarious! Loving the helpful video, it's great how you break everything down so well step by step.

    • @navekeng
      @navekeng  8 місяців тому +3

      LOLOLOLOL
      Talking and typing is hard enough... to much to handle saying 'angle bracket' hahaha

    • @navekeng
      @navekeng  8 місяців тому +3

      and of course thanks!

  • @abneryang2102
    @abneryang2102 7 місяців тому +2

    Just found this channel, great stuff. I really like the way you go about explaining stuff. Looking forward to looking through more of your content - keep going!

    • @navekeng
      @navekeng  7 місяців тому +1

      More on the way, thanks!

  • @muhammedkadirtan3469
    @muhammedkadirtan3469 8 місяців тому +9

    Came for the grep, stayed for the regex. Great content. One thing I would add is, sometimes I grep twice. For example, I want to find all the 404 logs, but then I also want to filter out logs with specific message, say "user not found". Then I can: cat server.log | grep 404 | grep 'user not found'

    • @navekeng
      @navekeng  8 місяців тому +2

      Ah good point, Yea I guess it’s not obvious haha
      Thanks for watching!

    • @Hornet1806
      @Hornet1806 8 місяців тому +1

      Pretty sure you can do both of those at the same time with -E and/or -v. Also, you can pass your file in to grep directly rather than cat, which is for concatenating files together. On some shells you can also just < file to print its contents.

  • @AngryEyedBear
    @AngryEyedBear 9 днів тому

    Thanks for the quick intro! Really helpful!

  • @TreeLuvBurdpu
    @TreeLuvBurdpu 8 місяців тому +4

    -C is for context, a very important word.

    • @navekeng
      @navekeng  8 місяців тому +2

      Yea haha just chugging through forgot the word ha

    • @NunoMartinsGalvao
      @NunoMartinsGalvao 3 місяці тому +1

      Exactly is like the diff command where it says it has 3 lines of context (you can change the amount of lines of context).
      @navekeng great content btw

  • @sagarchilivery6112
    @sagarchilivery6112 8 місяців тому +9

    Trust me, you will grow like anything just keep posting linux videos! totally loving it!

    • @navekeng
      @navekeng  8 місяців тому +2

      That's the plan!

  • @Nobody-eg4bi
    @Nobody-eg4bi 5 місяців тому

    You have the best video ever about grep on UA-cam

  • @jwf3148
    @jwf3148 7 місяців тому +1

    I'm pressured for time, so I can't "Like" all of the positive comments - but please note that I do agree with each and every one...VERY userful videos...Yea for us, Thank you to you.

  • @JohnSmith-ni4cs
    @JohnSmith-ni4cs 7 місяців тому

    @4:40 -e tells grep to search for the regular expression '-a'. It does not negate special characters. For example if you searched for -e 'a$' it would return lines ending with the letter a

  • @florianrose8907
    @florianrose8907 5 місяців тому

    Please keep making those Videos. Those are so nicely done :) I am thankful!

  • @INCLASKY
    @INCLASKY 8 місяців тому +4

    Awesome videos for people learning man, keep it up!

    • @navekeng
      @navekeng  8 місяців тому +1

      Glad you like them!

  • @dandogamer
    @dandogamer 8 місяців тому +4

    Need a video on jq , I'm a noob at it but can appreciate how efficient it can be to find and manipulate json

    • @navekeng
      @navekeng  8 місяців тому +3

      No joke writing out a vid on jq right now!

    • @navekeng
      @navekeng  8 місяців тому +3

      Sometime this week actually! Haha thanks for the comment

  • @ekinakkaya9257
    @ekinakkaya9257 8 місяців тому +2

    straight to the point, also i really like the video & sound quality. you earned a subscriber brah

    • @navekeng
      @navekeng  8 місяців тому +1

      ty ty 🫡

  • @BlaBlaBlaInDaHouse
    @BlaBlaBlaInDaHouse Місяць тому

    Great video! Cheers!

  • @jenselstner5527
    @jenselstner5527 8 місяців тому +5

    Use 'grep -P' for Perl regexes. Then you're able to use special shortcuts like \d for a digit or \s for a whitespace, etc.

    • @navekeng
      @navekeng  8 місяців тому +1

      Yea I avoided Peral because I think it adds complexity to what is necessary vs not, hell I was trying to avoid -E but then the command was so ugly lol
      my thought was the Perl folks already know how to do Peral regex! lol

    • @navekeng
      @navekeng  8 місяців тому

      Thanks for the suggestion and watching!

  • @codeman99-dev
    @codeman99-dev 7 місяців тому +1

    Very important note! The grep command is very battle tested.
    A regex that is safe with grep is not necessarily safe to use on requested resources. Always use extra caution with unknown inputs. Use extra extra caution if that unknown input can build a regular expression!

  • @JairEmanuels
    @JairEmanuels 8 місяців тому +2

    Great video, will definitely help me prepare for my exam :)

    • @navekeng
      @navekeng  8 місяців тому

      Best of luck!

  • @niczoom
    @niczoom 6 місяців тому

    Great video, thanks!

  • @neunmalelf
    @neunmalelf 8 місяців тому +2

    I guess that kind of videos can be helpful for beginner. Not too much detail and options digging, still a decent amount of helpful information. Well done! 👍☺

    • @navekeng
      @navekeng  8 місяців тому +1

      Glad you enjoyed it!
      Yea the intention is showing the power, basically removing some unknown unknowns from someone newer or rusty with the tool!

    • @neunmalelf
      @neunmalelf 8 місяців тому

      I wonder if people would be interested in UA-cam shorts with 'new / additional' tips and 'reminder' using this common tools 🤔.grep and find would be good candidates IMHO

  • @abhishektiwari9561
    @abhishektiwari9561 8 місяців тому +2

    this is a great short and to the point video.

    • @navekeng
      @navekeng  8 місяців тому

      Appreciated!

  • @ShinichiroKururugi
    @ShinichiroKururugi 7 місяців тому

    Great video! I consider myself a bit of a seasoned sysadmin but I still managed to learn '-w' and '-e' for the first time! I normally use 'fgrep " term " ' (or 'grep -F') to search literal strings.
    As a bit of feedback, I would avoid teaching 'cat | grep' as an example because it is generally considered to be poor practice as it achieves the same result while expending more CPU resources. But if you must use the example, then at the very least mention that it is less than an ideal use 'cat'. While 'cat' itself is not a huge deal resource-wise, myself, a long time ago have been guilty of using 'cat | grep' not knowing any better but hope to teach others better practices and better habits. I would instead use different commands like 'ifconfig' or 'ps' to demonstrate the use of piping into 'grep'.

  • @Hornet1806
    @Hornet1806 8 місяців тому +1

    Pretty sure -C is context. I use vim as my pager for man pages, but this should apply regardless. In man, I would use /^[ ]*-a, to find the section of the man page relating to the a flag. It reads, “show me lines beginning with some number of spaces immediately followed by -a”.

    • @navekeng
      @navekeng  8 місяців тому

      good point, and yea I missed context lol

  • @kychemclass5850
    @kychemclass5850 4 місяці тому

    Thank you. If you have time a video on the $ sed command would be great, leading to string parsing.

  • @friedrichmyers
    @friedrichmyers 8 місяців тому +4

    This is what youtube videos should be like!

    • @navekeng
      @navekeng  8 місяців тому

      Well don't think I can ask for a better complement! haha thank you!

  • @harijagarnauth
    @harijagarnauth 7 місяців тому +1

    Awesome!

    • @navekeng
      @navekeng  7 місяців тому

      Glad you think so!

  • @bl00dspec75
    @bl00dspec75 7 місяців тому +1

    grep is probably one of the most powerful pieces of software ever created next to git

  • @HamsterLover1337
    @HamsterLover1337 6 місяців тому

    Amazing!

  • @bermudi
    @bermudi 8 місяців тому +2

    You should be using your pager to find things in manual pages. Usually `less` is used as man pager and literally all you have to do is press `/`

    • @navekeng
      @navekeng  8 місяців тому +1

      Yea makes sense, I was mostly just demoing Gregs capabilities here but I could have been more clear it’s one of the ways to do it not “the” way.
      Thanks for watching

  • @spamharder1757
    @spamharder1757 8 місяців тому +2

    One useful flag I didn't see: the -o flag. I use it a lot when grepping by some regex pattern and I only need the match output

    • @navekeng
      @navekeng  8 місяців тому

      Oh good callout I missed that and it would be a helpful one for sure!

  • @JassonCordones
    @JassonCordones 7 місяців тому +1

    nothing that I didn't know already but great video anyways

    • @navekeng
      @navekeng  7 місяців тому +1

      Glad you enjoyed!

  • @danel1922
    @danel1922 6 місяців тому

    such a great concise video, thx!

  • @jsd4544
    @jsd4544 7 місяців тому

    Useful! Thanks

    • @navekeng
      @navekeng  7 місяців тому

      Glad you think so!

  • @tieTYT
    @tieTYT 8 місяців тому +2

    I've always thought "-C n" stands for context. As in, the number of lines of context around the match. At least, that's how I remember it.

    • @navekeng
      @navekeng  8 місяців тому

      Ngl I made up contains clearly haha you are prob right I need to check the man page haha
      Thanks for the spot haha

  • @k.chriscaldwell4141
    @k.chriscaldwell4141 3 дні тому

    Thank you.

  • @matthewrease2376
    @matthewrease2376 7 місяців тому +1

    5:25 no, I don't believe the -- could relate to bash, that would have to be a feature of GREP itself. Because all arguments are passed the same way (argv). It would have to be GREP seeing the -- and handling it to change the behavior of future arguments.

    • @rabbitt1751
      @rabbitt1751 7 місяців тому +1

      I’m pretty sure that “-“ is handled by libc, or more specifically getopt and getopt_long (both functions implemented in libc), which grep likely uses for parsing command line args.

  • @TrustJesusToday
    @TrustJesusToday 6 місяців тому

    It is helpful to get a grip on grep.

  • @devondecenzo2658
    @devondecenzo2658 7 місяців тому +1

    Wow; just found this and loved it! Thanks Navek, you know have a new Sub... ME :)

    • @navekeng
      @navekeng  7 місяців тому

      Thanks and welcome

  • @tanuj05
    @tanuj05 8 місяців тому +1

    Nice tutorial

    • @navekeng
      @navekeng  8 місяців тому

      Glad you think so!

  • @emilne83
    @emilne83 7 місяців тому

    Great video overall.
    But I just want to point out that last part about filtering out IPs is wrong. The first 3 octets can all be 1-3 digits. That filter will miss a lot of possible IPs.

  • @jvdl-dev
    @jvdl-dev 8 місяців тому +1

    I know this wasn't the point of your video, but when you're using `man` pages, usually your pager can perform searches within by pressing `/` while you're looking at the man page. For example `/` followed by `-D` and then pressing Enter will find the `-D` flag and then press `n` or `N` to search forwards and backwards. (You can also press `?` instead of `/` to start searching backwards. If you spend a lot of time in man pages, definitely worth figuring out the keyboard shortcuts :)
    Loved the video btw, very to the point, no unnecessary preamble, just pure usefulness.

    • @navekeng
      @navekeng  8 місяців тому +1

      Yea good point and something I could have clarified that this was one way to do it not “the” way to do it!
      Thanks for the comment and watching!

  • @surplusvalue3271
    @surplusvalue3271 8 місяців тому +1

    super underrated

    • @navekeng
      @navekeng  8 місяців тому +1

      Appreciate that!

  • @callisoncaffrey
    @callisoncaffrey 7 місяців тому

    If you're using Gnu grep at least make use of the -P switch to get access to the Pearl regex. Also you could have mentioned that not all distros have --color added to the grep alias. Your IP regex isn't fully accurate either, since it also would match illegal addresses.
    Everything else was quite nice though. For coding purposes -Rn is useful (recursive and show line number). If you want to compare files I found it helpful to add the -x switch. I usually compared kernel .configs with grep -xivf old.config new.config, though I found that still needs too much scrolling, so I hope you have a gnu awk video ready, and you better not pipe grep into awk!

  • @arief_
    @arief_ 8 місяців тому +1

    the nice thumbnail drag me here

    • @navekeng
      @navekeng  8 місяців тому

      Weirdly enough this might be the best complement I have gotten, I try so hard and feel so damn bad at creating thumbnails.
      Honestly Linux is the easy part lol,
      Thanks!

  • @0xchilli
    @0xchilli 8 місяців тому +1

    take the sub bro , u deserve it , will recommend u a lot

    • @navekeng
      @navekeng  8 місяців тому

      I appreciate that!

  • @hj45lp
    @hj45lp 7 місяців тому

    I suggest you watch next the fantastic "Where GREP came from" by Computerphile...

    • @navekeng
      @navekeng  7 місяців тому +1

      A great video for sure

  • @MaxBerson
    @MaxBerson 8 місяців тому +1

    6:00 C for "circa"!

  • @logangrosz6529
    @logangrosz6529 8 місяців тому

    It may be worth nothing the globbing is performed by the shell, not grep. It is equivalent to just listing all the files that match the glob (because that's literally what the shell does).

    • @navekeng
      @navekeng  8 місяців тому

      Yea, makes sense. Sometimes i zero in on how to use the tool and have to cut context. Its a balance for sure that I am still learning

  • @SamClegg
    @SamClegg 8 місяців тому +1

    For `-C` the mnemonic is "context" I believe

    • @navekeng
      @navekeng  8 місяців тому +1

      yea correct! hahaha I was flying through it and forgot what it was lol

    • @SamClegg
      @SamClegg 8 місяців тому +1

      @@navekeng awesome videos by the way.. should have said that part first :)

    • @navekeng
      @navekeng  8 місяців тому

      Thanks! Haha

  • @BarisGulten
    @BarisGulten 7 місяців тому

    Good channel. Keep going 😊

    • @navekeng
      @navekeng  7 місяців тому

      Thank you! 😃

  • @acayipbiseyya
    @acayipbiseyya 6 місяців тому

    thx man

  • @nikolaygruychev2504
    @nikolaygruychev2504 8 місяців тому

    damn i did not know some of the flags. nice vid man

    • @navekeng
      @navekeng  8 місяців тому

      Glad It was helpful, thanks for watching

  • @0xchilli
    @0xchilli 8 місяців тому +1

    less, greater than are called angle brackets in this context 9:27

    • @navekeng
      @navekeng  8 місяців тому

      LOL I was movinnn okay... grep makes my brain fog up and I prefer "big alligator" anyways

  • @chyldstudios
    @chyldstudios 7 місяців тому +2

    ripgrep > grep

    • @navekeng
      @navekeng  7 місяців тому

      don't disagree, but you have to learn the rules before you can break them.
      Also you might not always be on a system that has ripgrep

  • @NostraDavid2
    @NostraDavid2 8 місяців тому +2

    RE: Logging
    Use structured logging and preferrably JSON - you can now use jq and do WAY more powerful stuff in an almost-as-complex language as regex.

    • @navekeng
      @navekeng  8 місяців тому

      Yea that is true, I have a whole vid in the pipeline on OpenTelemetry (my day job is on an Observability team fun fact)
      But maybe I will do a quick video on jq, imo I use jq more then like awk.
      Thanks for the input, ill call you out when I do a vid on jq lol!

  • @patrickhawk6058
    @patrickhawk6058 8 місяців тому +1

    grep -ril

  • @MasterSergius
    @MasterSergius 7 місяців тому

    Like who searched for this video using grep

  • @docmalitt
    @docmalitt 8 місяців тому

    back to school kids... (btw just pumping your engagement, disregard the word salad coming out of my brai... "there is no spoon Neo"... keyboard)

    • @navekeng
      @navekeng  8 місяців тому

      A keyboard warrior if you will, fightin the good fight

  • @roganl
    @roganl 8 місяців тому +2

    Clear screen is Ctrl-L .

    • @navekeng
      @navekeng  8 місяців тому

      Somthing something “old habits” haha 😂

  • @hexssoulld
    @hexssoulld 7 місяців тому

    Why use Grep?
    Reply with what you use it for!

  • @rabbitt1751
    @rabbitt1751 7 місяців тому

    `grep EXP FILE` > `cat FILE | grep EXP`

  • @pabloqp7929
    @pabloqp7929 8 місяців тому

    ripgrep®

    • @navekeng
      @navekeng  8 місяців тому

      ripgrep is night and day better but you can't always guarantee you have access to it as an engineer on a remote system or lets say in a troubleshooting interview!

  • @sense3d
    @sense3d 7 місяців тому +1

    Great, but please speak more slowly.

  • @carrion1234
    @carrion1234 8 місяців тому +1

    what console font is that?

    • @navekeng
      @navekeng  8 місяців тому +1

      JetBrains Mono Nerd Font

    • @carrion1234
      @carrion1234 8 місяців тому +1

      @@navekeng oh damn, i use jetbrains mono in my jetbrains IDE, no wonder that tickled something in my brain :D thx!

    • @navekeng
      @navekeng  8 місяців тому

      Haha idk it’s not perfect and I don’t love it exsactly yet, but can’t find something better.
      I’m sure it will change again 😆

  • @nomandates9186
    @nomandates9186 8 місяців тому +1

    video bookmarked

  • @lylestavast7652
    @lylestavast7652 8 місяців тому

    Been grepping since 1987 or so...

  • @LarsBahner
    @LarsBahner 7 місяців тому +3

    We've been trying to get people stop doing cat |grep for years. Why on earth would you do that? You add another process to your pipeline for absolutely no other reason than adding unneeded complexity. You should probably think before you try to teach.

    • @brunoviniciusfauth882
      @brunoviniciusfauth882 22 дні тому

      ur correct despite salty… its just a process bro, no need to get angry like that

  • @delqyrus2619
    @delqyrus2619 8 місяців тому +2

    0:50 what a cat abuse.

  • @adriansrfr
    @adriansrfr 7 місяців тому

    I find ripgrep to be faster and more useful, especially combined with fzf.

  • @mariusfacktor3597
    @mariusfacktor3597 7 місяців тому +1

    I find myself needing to find a word in a directory and wanting to know the line number. -r for recursive, -n for line number
    grep -r -n searchterm dir/

  • @ethernet764
    @ethernet764 8 місяців тому +1

    Unlocking grep: Install ripgrep 😎

    • @navekeng
      @navekeng  8 місяців тому +1

      “you must first know the rules, before you can break the rules” haha
      But yea if you are a power user there are many alternatives and ways to make it more powerful

  • @recarsion
    @recarsion 8 місяців тому +1

    I use ripgrep btw

    • @navekeng
      @navekeng  8 місяців тому +1

      ripgrep is night and day better but you can't always guarantee you have access to it as an engineer on a remote system or lets say in a troubleshooting interview!

    • @recarsion
      @recarsion 8 місяців тому

      @@navekeng yep, unfortunately, but GNU grep is still a great tool

  • @ThePacolicious
    @ThePacolicious 7 місяців тому +1

    Love your content and your presentation. Got a sub from this guy. | grep "earned sub"

  • @it_is_ni
    @it_is_ni 8 місяців тому

    Give it up for grep in 2024: ripgrep. It’s faster, it auto ignores files you probably don’t want to search for and it’s mostly a dropin replacement for grep.

    • @navekeng
      @navekeng  8 місяців тому +1

      ripgrep is night and day better but you can't always guarantee you have access to it as an engineer on a remote system or lets say in a troubleshooting interview!