Windows needs built-in version of *NIX tools like grep/sed/awk etc.
Lot of them are BSD licensed too, so MS can include as is. Also, inputrc support! I will never look at Linux again I swear
Updating feedback status.
Julian Knight commented
I agree with others that more should be done to standardise cmd.exe & PowerShell commands around some of the key Linux/BSD commands. grep & set amongst them.
In addition, some of the existing PowerShell equivalents like ls and wget really need to be brought more into line with their bash equivalents.
Finally, PowerShell REALLY needs to get "&&" support - this has been requested for years! It is a major impediment to the adoption of PowerShell on any platform.
Here is a real world example of that I need sed in Cmd.exe. I used sed in Windows Vista.
This creates a bat-file that downloads videos.
I think you should also have awk, because I used that with Windows 95 in order to create automatic translations of files for some system.
I think Perl and CPAN will not be necessary in Cmd.exe for ordinary users, because routers often have Awk and Sed built-in, but not more programming languages. Grep is probably needed, but that is not a programming language AFAIK.
You could hunt around the Internet for these tools, but it would be easier and safer if they were built-in. Every one can't install from e.g. http://gnuwin32.sourceforge.net/ or Ubuntu for WSL from Store. E.g. in many schools and libraries you can't run setup-programs or switch on WSL. I think you should use BSD-versions of these tools, because then Cmd.exe will be a bit like Mac OS X, and the BSD-licence probably fits Microsoft better. Cmd.exe will then not compete that much with e.g. Ubuntu for WSL, but complement it.
You already have curl and tar (i.e. bsdtar), which is great.
Sumit Gupta commented
yes, inclusion of Bash is additional developer tool and it is not necessary to have it installed in core windows. So a core command like that are always welcome.
Ariel Jacobs commented
> With the advent of Bash on Ubuntu on Windows, do you still feel there’s a need for grep/sed/awk on Windows?
Yes, in that there really shouldn't be two shells on Windows, but one that does everything I need to. I am comfortable with the Windows shell, but would like to run many of the programs from it that there aren't great alternatives to yet.
Felix Becker commented
Powershell has many aliases that mirror the Linux commands. For example, ls os an alias for Get-ChildItem, man for Get-Help, rm etc. You have autocompletion for commands, arguments and paths and arguments can be passed as abbreviations, name, position, case insensitive.
Felix Becker commented
Git for Windows includes all these.
Natan Vivo commented
Honestly, although powershell has these features, I still prefer grep for 2 reasons: 1: powershell commands are too long to type and are really hard to remember, the syntax is terrible and 2: I switch between linux and windows all the time, and using the same tools on windows is just easier.
Powershell has a huge usage barrier still today on windows 10. Shift-right click shows command prompt, not powershell. "cmd" is faster to type than "powershell", most shortcuts created by tools like VS Developer Command prompt, Node command prompt, MSBuild command prompt, all default to cmd. cmd is everywhere, powershell is something we need to remember to call, and still today requires effort to enable running scripts.
But I discovered gow (https://github.com/bmatzelle/gow), I have been able to use all the tools I wanted like grep, vim, etc.
I don't believe Ms should create their version anymore, but would be great if they just adopted a project like gow (like you did with git for windows) and just bundled that into windows directly. It's already there and it works great.
Simpson Bart commented
I thought these have been long ported. I have wc added to my path along with ls, sed and grep. Why is this a thing?
Brandon Paddock commented
Well, in some cases Windows already has equivalents, like findstr instead of grep. Of course, more tools could be useful, and having the same (or compatible) tools as other platforms has advantages as well.
patch, m4 **** even make if at all possible!
The reason why? Cross-Platform development. becomes 100x easier as I can just use cmd instead of having to install msys2/Cygwin every time.
@Anonymous So PS can do all the text parsing that grep, sed, awk, troff ? If true, I'd like to see the command.
And for the other @Anonymous, you must not ever have to deal with log files. As an Administrator/Engineer/whatever, you live for log files. Log files are still largely text. Then there are the many other outputs to commands that we need to take action on. Having someone sitting there looking at that is not how we do it. Inexperienced admins will simply open up notepad.exe and copy/paste and so on. Wasting time. Why wouldn't I use text parsing tools? Can PS really replace grep, sed, awk, troff/nroff, sort, cut, join, paste, uniq...and so many more?
@Don Cruickshank No, these utilities are used because they are simple and yet powerful.
@Keith Hill OK, so Invoke-WebRequest can do everything that wget can do? I'll have to take a look.
For those of you who use Cygwin, there are standalone Win32 ports of numerous *nix utilities (grep, cat, sed, awk, etc.). These are standalone executables so no need to install anything. Make sure you download both unixutils.zip and unixupdates.zip to get them all (link: http://unxutils.sourceforge.net/ ). Other things like nmap, nc (netcat), vi, etc. are available at other locations. The point is even though a lot of these can now be done in PS, sometimes you just want an executable out in cmd.exe to run. Options folks, it's about options.
Natan Vivo commented
Instead of having a single "Telnet client" in windows feature dialog, have a "Additional command line tools" that include ssh, grep, less, md5sum, sha1sum and other basic tools that we use everyday in terminals.
Steve Lee commented
Cygwin offers a reasonable solution (with terrible installer). MinGW is native but it's fixed path conversion huristics can be a deal breaker. So a native solution supplied by MS would be wlecome.
Why oh why did someone choose command switch as / and separate file trees? That and EOL are still major pain points after all these years.
Keith Hill commented
@Anonymous I agree. PowerShell is so much more, well, Power-ful. As for wget, in PowerShell that is Invoke-WebRequest.
Don Cruickshank commented
Adding the typical UNIX tools would be a step backwards.
I appreciate that for some it would allow them to perform tasks because they are familiar with those tools and not PowerShell but for these scenarios there is Cygwin, etc.
Sure, lets fall back to text parsing, when you have a fully OO shell in PowerShell. Just because al the cool kids were doing it in 1970
Warren R commented
wget already exists, it's part of powershell.
An MS version of wget would be pretty cool too.