Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- http://xahlee.info/powershell/PowerShell_for_unixer.html
- PowerShell Tutorial
- PowerShell vs Bash
- By Xah Lee. Date: 2009-07-26. Last updated: 2018-07-24.
- This pages shows the equivalent of PowerShell for common unix commands related to text processing.
- Simple Commands
- The following bash commands have PowerShell alias. (but the options may not be the same)
- cd
- pwd
- ls
- pushd
- popd
- cp
- rm
- rmdir
- mv
- cat
- echo
- set
- ps
- kill
- clear
- man
- file content
- Purpose Bash + GNU utils PowerShell
- create new file touch ff ni ff -type file
- ni ↔ New-Item
- show file content cat ff cat ff
- cat ↔ Get-Content ↔ gc
- merge file cat f1 f2 > new.txt cat f1, f2 > new.txt
- show first n lines head -n 50 ff cat ff | select -first 50
- show last n lines tail cat file | select -last 50
- find file
- Purpose Bash + GNU utils PowerShell
- list dirs find . -type d gci . -Recurse -name
- gci ↔ Get-ChildItem
- list files find . -type f ?
- list html files find . -name "*html" gci . -Recurse -name -include *html
- list empty files find . -size 0 ls . -recurse | where {$_.length -eq 0}
- delete empty files find . -type f -size 0 -exec rm {} \; ?
- search text (grep)
- Purpose Bash + GNU utils PowerShell
- search text grep xyz f.txt select-string f.txt -pattern xyz -CaseSensitive
- search text grep xyz *html select-string *html -pattern xyz -CaseSensitive
- search text grep -i select-string without -CaseSensitive
- search text grep --invert-match select-string with -NotMatch
- search text grep --files-with-matches ◇
- cat file_name | where { $_ -match "regex_pattern"}
- cat file_name | %{$_ -replace "regex_pattern","replace_string"}
- diff, sort, get column etc
- Purpose Bash + GNU utils PowerShell
- ◇ cmp diff
- diff ↔ compare ↔ Compare-Object
- compare file difference diff f1 f2 diff (cat f1) (cat f2)
- ◇ sed ?
- print nth column awk '{print $12 , $7}' ?
- ◇ sort sort (Sort-Object)
- ◇ uniq sort -Unique
- ◇ wc Measure-Object
- (measure ↔ Measure-Object)
- ◇ tr ◇
- ◇ basename ◇
- ◇ dirname ◇
- Work In Progress
- Note: this page is a mess. It's work in progress. (started when i wished to convert my log processing bash script to PowerShell)
- todo, show PowerShell equivalent of this:
- find . -print0 | xargs -0 -l -i echo "{}";
- find . -name "*bmp" -print0 | xargs -0 -l -i basename -s ".bmp" "{}" | xargs -0 -l -i convert "{}.bmp" "{}.png".
- touch
- # creating a new file in current dir
- touch myfile.txt
- # creating a new file in current dir
- new-item -name myfile.txt -type "file"
- Redirect “>”
- # put content in a file
- echo "some" > myfile.txt
- echo "some more" >> myfile.txt # append
- # put content in a file
- "some" > myfile.txt
- "some more" >> myfile.txt # append
- Note that, by default, the PowerShell redirect operator ">" creates files with little endian utf-16 encoding, and lines are hard-wrapped at 80 chars, and line ending uses Windows convention of "\r\n" (ascii 13 and 10).
- On unixes, the conventional file encoding is utf-8, and lines are not hard-wrapped (sometimes truncated (deleted) silently), and line ending uses "\n" (ascii 10).
- To create unix style output, use out-file, like this:
- "1'n2'n3" | out-file -Encoding utf8 -width 999000 myfile.txt
- However, the line ending used is still "\r\n". To create unix line ending of just "\n", use:
- … | Out-String | %{ $_.Replace("`r`n","`n") } | out-file …
- However, the end of the file will still contain a "\r".
- cat
- Unix “cat” can be used to read a file, or join several files. PowerShell equivalent is “get-content” with alias “cat” too.
- # display a file content. (cat is alias of get-content)
- cat myfile.txt
- Note that by default, PowerShell assumes ascii. You can set your $OutputEncoding like this:
- # set $OutputEncoding to utf-8
- $OutputEncoding = New-Object -typename System.Text.UTF8Encoding
- Thanks to Shivashis Saha for addition on “cat”. He also sends the following:
- split
- For example, if you want to split a line based on “:”, you can use the following line:
- (given $str is a line with different fields separated by ":")
- $temp=@($str -split ":");
- Super thanks to Jeffrey Snover of Microsoft for helping on about 10 of the items. (Jeffrey's the inventor of PowerShell)
- If you have a question, put $5 at patreon and message me.
- PowerShell
- xah powershell logo
- Install, Start, Exit
- Help Command
- as cmd.exe, bash
- list Alias
- Piping
- Env Vars
- Automatic Variables
- Write Script
- PowerShell vs Bash
- ∑XAH
- © 1995, 2020 Xah Lee.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement