Walt Mankowski on 24 Aug 2018 12:52:25 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] shell scripting help |
The linux subsystem uses apt to manage its packages. On Fri, Aug 24, 2018 at 03:42:04PM -0400, Will wrote: > All I can say is... If you are forced to use Windows, install whatever you > want using chocolatey and maintain it that way. They do have a cygwin > package. I have not looked to see if they install the linux subsystem or > not. > > On Fri, Aug 24, 2018, 15:29 Walt Mankowski <waltman@pobox.com> wrote: > > > The linux subsystem on Windows 10 gives you a shell prompt and most of > > your favorite command line tools. > > > > On Fri, Aug 24, 2018 at 02:19:38PM -0400, Will wrote: > > > Install git, use git bash if a VM is not possible. I think Rich Freeman > > > said something in the past about Gentoo Prefix and cygwin being pretty > > nice > > > if you want something more light weight than a VM with all your bash > > tools > > > and toys. > > > > > > -Will C > > > > > > On Fri, Aug 24, 2018, 13:58 Michael Lazin <microlaser@gmail.com> wrote: > > > > > > > Thanks JP! I remember meeting you at a few plug meetings. I actually > > > > live very close to where plug central meets but still work in the > > distant > > > > suburbs so it's hard to make it to meetings. I am going to be at > > FOSSCON > > > > but I'm not sure what time. > > > > > > > > On Fri, Aug 24, 2018 at 1:50 PM, JP Vossen <jp@jpsdomain.org> wrote: > > > > > > > >> Ouch, sorry to hear about the Windows part. :-) I'm forced to use a > > > >> Windows laptop at $WORK and loath it, I do all my real work on a Mint > > VM > > > >> thought running it on top of Windows is like building a house on sand > > (I > > > >> snapshot it a lot). > > > >> > > > >> I know you got your script working, but all those greps are > > inefficient > > > >> because each `|` is another sub-shell. The following is untested > > since I > > > >> don't have your data, and I merged all the `grep -v` to *before* the > > sort > > > >> which might break something though I don't see how it could. I also > > broke > > > >> the long lines before some MUA or MTA does it for me. Don't use > > before > > > >> testing well! Of course. > > > >> > > > >> Prompted: > > > >> ---- > > > >> #!/bin/bash - > > > >> # Add date and comment here > > > >> > > > >> read -p "What is the filename you want to grep? " file_name > > > >> egrep '\b[A-Z]+| [0-9:]+ \b' "$file_name" \ > > > >> | egrep -v 'anaged|No|Na|Ser|Ty|Contact' | sort -u > > > >> ---- > > > >> > > > >> From command line: > > > >> ---- > > > >> #!/bin/bash - > > > >> # Add date and comment here > > > >> > > > >> # Usage:: <script name> <file name> > > > >> egrep '\b[A-Z]+| [0-9:]+ \b' "$1" \ > > > >> | egrep -v 'anaged|No|Na|Ser|Ty|Contact' | sort -u > > > >> ---- > > > >> > > > >> Various rambling: > > > >> > > > >> Always add at least a comment and ideally a day, describing your > > > >> *intent*. You will thank yourself 6 months from now. > > > >> > > > >> You can use `read -p` to get rid of the `echo`. > > > >> > > > >> Try `help read` since `man read` will probably give you the Bash man > > > >> page, which is good reading but not really helpful in a case like > > this. > > > >> `help` gives help on bash built-ins like `read`, `set`, `test` (really > > > >> useful) and lots more. > > > >> > > > >> As pointed out elsewhere, giving it the file name on the command line > > is > > > >> more Unix-y, so there's a versions does that. Actually, using it as a > > > >> "filter" would be even more Unix-y, but one thing at a time. :-) > > > >> > > > >> There is also obviously zero sanity or error checking, though in this > > > >> case that's not a big deal. > > > >> > > > >> You don't need ';' statement terminators. They don't hurt, but they > > are > > > >> unnecessary noise. > > > >> > > > >> The trailing "-" in the shebang line `#!/bin/bash -` protects against > > an > > > >> ancient kernel vulnerability. I'm not even 100% sure it still > > matters, but > > > >> it can't hurt and it's arguably a good habit. > > > >> > > > >> Semi-related, I like doing "top N" lists like: > > > >> <stuff> | sort | uniq -c | sort -rn | head -n10 > > > >> > > > >> > > > >> There are tools (getclip.exe and putclip.exe) that let you read/write > > the > > > >> windows clipboard from the command line. I've never tried those in > > WSL, > > > >> but they used to be GREAT with the UnxUtils to grab a column of, say, > > IPAs > > > >> from a spreadsheet and: > > > >> getclip | sort | uniq -c | sort -rn | head -n10 | putclip > > > >> > > > >> See my very old and not really relevant to WSL pages at: > > > >> * https://www.jpsdomain.org/windows/win-tools.html > > > >> * https://www.jpsdomain.org/windows/winshell.html > > > >> > > > >> > > > >> On 08/24/2018 12:42 PM, Michael Lazin wrote: > > > >> > > > >>> Thank you all, it's working now. I actually am not in the role of > > being > > > >>> a Linux user right now. Maybe that is why interactive scripts > > appeal to me > > > >>> lol. I did forensics on Debian web servers for 10 years and lost my > > job > > > >>> and ended up finding a job as a Windows sysadmin rather quickly and > > took it > > > >>> because it beats no job. I installed the linux subsystem for Windows > > > >>> because I do love bash and have found it useful for getting some > > mundane > > > >>> tasks done. I am also learning powershell, I know it stands against > > > >>> everything in this group, but I keep telling myself knowing two OS's > > will > > > >>> eventually work to my advantage. Thanks. > > > >>> > > > >>> On Fri, Aug 24, 2018 at 12:28 PM, prushik <prushik@gmail.com > > <mailto: > > > >>> prushik@gmail.com>> wrote: > > > >>> > > > >>> Very few Linux users enjoy interactive scripts, but whatever > > floats > > > >>> your boat. > > > >>> Your script has a few issues, but the biggest is that you seem > > to be > > > >>> confusing bash and php. $ is not a variable indicator in bash, > > its > > > >>> an expansion operator. This means that your read $i line gets > > > >>> expanded to read "", since i is unset at the beginning of the > > script. > > > >>> > > > >>> Also remove done from the end of the script since you have no > > > >>> corresponding do. > > > >>> > > > >>> > > > >>> > > > >>> Sent from my device. > > > >>> ---- Original message ---- > > > >>> From: Anthony Martin <anthony.j.martin142@gmail.com > > > >>> <mailto:anthony.j.martin142@gmail.com>> > > > >>> Sent: 08/24/2018 12:12:24 > > > >>> To: Philadelphia Linux User's Group Discussion List > > > >>> <plug@lists.phillylinux.org <mailto:plug@lists.phillylinux.org>> > > > >>> Subject: Re: [PLUG] shell scripting help > > > >>> > > > >>> Have you tried setting it so you give the file name as an > > argument > > > >>> when you run the script? ./Script FILENAME > > > >>> > > > >>> Anthony Martin > > > >>> > > > >>> Linux System Administrator > > > >>> > > > >>> > > > >>> > > > >>> On Fri, Aug 24, 2018 at 12:04 PM Michael Lazin < > > microlaser@gmail.com > > > >>> <mailto:microlaser@gmail.com>> wrote: > > > >>> > > > >>> I am trying to write a shell script to automate the > > formatting > > > >>> of a text file in a certain way that is useful to me. the > > > >>> complicated egrep while not ideal does the job when run > > alone, > > > >>> where $i is the name of the file I want to grep, but when I > > try > > > >>> put it together in an easy to run script it doesn't do > > > >>> anything. Can someone please point me in the right > > direction? > > > >>> Thank you. > > > >>> > > > >>> #!/bin/bash > > > >>> echo "What is the filename you want to grep?"; > > > >>> read $i; > > > >>> OUTPUT="$(egrep '\b[A-Z]+| [0-9:]+ \b' $i | grep -v anaged | > > > >>> grep -v No| sort -u | grep -v Na | grep -v Ser | grep -v Ty | > > > >>> grep -v Contact)"; > > > >>> echo "${OUTPUT}"; > > > >>> done > > > >>> > > > >> > > > >> > > > >> Later, > > > >> JP > > > >> -- > > ------------------------------------------------------------------- > > > >> JP Vossen, CISSP | http://www.jpsdomain.org/ | > > http://bashcookbook.com/ > > > >> > > > >> > > > >> > > ___________________________________________________________________________ > > > >> Philadelphia Linux Users Group -- > > > >> http://www.phillylinux.org > > > >> Announcements - > > > >> http://lists.phillylinux.org/mailman/listinfo/plug-announce > > > >> General Discussion -- > > > >> http://lists.phillylinux.org/mailman/listinfo/plug > > > >> > > > > > > > > > > > > > > > > -- > > > > Michael Lazin > > > > > > > > to gar auto estin noein te kai ennai > > > > > > ___________________________________________________________________________ > > > > Philadelphia Linux Users Group -- > > > > http://www.phillylinux.org > > > > Announcements - > > > > http://lists.phillylinux.org/mailman/listinfo/plug-announce > > > > General Discussion -- > > > > http://lists.phillylinux.org/mailman/listinfo/plug > > > > > > > > > > > ___________________________________________________________________________ > > > Philadelphia Linux Users Group -- > > http://www.phillylinux.org > > > Announcements - > > http://lists.phillylinux.org/mailman/listinfo/plug-announce > > > General Discussion -- > > http://lists.phillylinux.org/mailman/listinfo/plug > > > > ___________________________________________________________________________ > > Philadelphia Linux Users Group -- > > http://www.phillylinux.org > > Announcements - > > http://lists.phillylinux.org/mailman/listinfo/plug-announce > > General Discussion -- > > http://lists.phillylinux.org/mailman/listinfo/plug > > > ___________________________________________________________________________ > Philadelphia Linux Users Group -- http://www.phillylinux.org > Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce > General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
Attachment:
signature.asc
Description: PGP signature
___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug