Skip to main content

Linux and Unix - Manipulating Files

Below is some common commands that I would like to know better so figured, why not and made a post about them:
  • wc -w <file> #This counts the amount of words in a file.
  • wc -l <file> #This counts the number of lines in a file.
  • head <file> #This reviews the first set of text at the beginning of the file. It can be piped out to more using "| more" .
  • tail <file> #Same as above but the end of thr file. This is commonly used to go ahead and tail a log file and watch it as it does stuff, for this however it requires the -f switch.
  • grep <option> <keyword> <file(s)> #Here is where things get a little more complciated. With Grep you can either search files for certain keywords with no options or using options such as -<num> to view num of lines before and after where it was found, or -i for searching without case sensitivity. Keep in mind you can also search many files just using wildcards.
  • sed '/<textyouwanttoreplace>/<textyourreplacingitwith>/<g for all or nothing for only one occurrence>' <file> #Well thats a handful eh? Basically sed then place quotes around what you want to replace and what your replacing it with with slashes between them. If you use the G switch it changes every instance in the file, if you do not it only does it once. If you want to change line by line, use this. If you are changing csv or database files, use awk
  • awk <opt> '{ <command> }' <filename> #Well this doesnt look complex does it. Well it is, using an example command of print $1 it will go ahead and issue the print command on the first line of each line. this is where things get interesting. You can string multiple statements together in the command to have it manipulate back oht in a fashion that you want. Using options you can use -f which will allow you to use the proceding character as the seperator such as -f, making it a comma as the seperator. This can get quite complicated depending on the commands entered.
  • cmp <file1> <file2> #This allows static comparisons of the two files. If the two files are the same nothing will comment out otherwise as the first occurrence it will tell you the line/char difference
  • diff <file1> <file2> #This will actually show the differences line by line between the two files. It will use the '<' and '>' to declare which file is which. Sdiff is better.
  • sort <file> <outputfile> #Basically does what you think, grabs line by line and sorts them alphabetically. This can be piped out to 'uniq' which allows only unique lines to be stored.
  • tee #This one is literally used as a pipe to redirect the output file from standard off to another application as for text. Basically using sort above, you could sort it, then pipe it to tee, and then pipe it to mail or another similar application.

Wildcards using Grep:
. = Matches any 1 character.
* = Finds 0 or more version of the preceding item. Ex: a*b would match ab, aab, aaab
^ = Matches string that only starts a line.
$ = Matches string that only ends a line.
\ = Allows special characters to be escaped, such as *,^,$
[ ] = Allows regular expressions, such as 0-9 or a-z

Comments

Popular posts from this blog

Fortigate to USG B2B

Building Site-to-Site B2B from Unifi USG to Fortigate (500D or other models) Fortigate Configuration 1. Build a New VPN Tunnel using Custom VPN Tunnel (No Template) 2. Under Network, point to the Public Side IP of the USG (Public IP, not WAN interface) 3. Leave everything else default (NAT-T Enabled, DPD Disabled..ect) 4. Authentication, use PSK and IKEv1 with Main 5. Phase 1 Purposal, set algorithms to AES128 and SHA1, with DH 14. 6. Phase 2 Purposal, set Local Address and Remote address to 0.0.0.0/0.0.0.0 and 0.0.0.0/0.0.0.0 respectively. 7. Set Encryption to AES128/Sha1, Replay Detection and PFS enabled, along with DH14. Enable Autokey Keep Alive, and Auto-Negotiate, and save changes. 8. Build a Static Route pointing to the Far-End Destination/Segment you want to reach. 9. Build a Policy Stating which Segments can hit the Far-End Destination/B2B USG Configuration 1. This is assuming that USG is already registered to the Unifi Controller. 2. Go t

How to setup a Host-Check for Fortigate SSL VPN

This document outlines how to setup a host-check for a Fortigate SSL VPN (Web only): config vpn ssl web portal edit "portalname" set web-mode enable set host-check custom set host-check-policy "Microsoft-Windows-Firewall" set os-check-enable set ip-pools "PoolName" set split-tunneling disable set page-layout double-column set theme orange config os-check-list "windows-7" set action check-up-to-date set latest-patch-level 1 end  config vpn ssl web host-check-software edit "Microsoft-Windows-Firewall" config check-item-list edit 1 set target "HKLM\\SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile:EnableFirewall==1" set type registry next edit 2 set target "HKLM\\SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\PublicProfile:EnableFirewall==1" set type registry next edit 3 set target "HKLM\\SYSTEM\\CurrentControlSet\\S

Implementing 802.1X - Windows 2012R2 + Cisco 4500 Switches

Implementing 802.1X Using Windows Server 2012R2 & Cisco 4500 Series Switches Overview: This document is to outline how the configuration between Windows Server 2012 R2’s NPS Services and Cisco 4500 Series switches has been implemented. High Level Diagram:   Requirements: Windows Server 2012 R2 with NPS Server installed Windows Server 2012 R2 with CA Services Windows AD Environment Cisco 4500 Series Switches Windows 7-10 Clients to connect NPS Configuration: 1. This assumes the above requirement that the NPS Service has already been installed on Windows Server 2012 R2 2. Disable all existing Policies under Connection Request Policies and Network Policies as you will be making your own, except one that states “Catch All” with the below parameters: 3. You will then need to add in a new Radius Client to have Policies built around. Friendly Name will be used going forward for the Policies for referencing the document. 4. Once completed, re