Showing posts with label Unix. Show all posts
Showing posts with label Unix. Show all posts

Using awk on the Command Line to Parse Files


I needed to format a file that contained a list of words with their accompanying definitions.  I didn't need the definitions and wanted to put an 'item' tag around each word.  awk to the rescue!

The Command:

awk '{print ""$1""}' < words.xml

I have this stored in the words.xml file:


BAD something bad
BAG to put into a bag
BAH intj. expressing disgust
BAL type of shoe (balmoral)
BAM to strike with a dull sound
BAN to prohibit/Rumanian coin

After running the command, I get:

<item>BAD</item>
<item>BAG</item>
<item>BAH</item>
<item>BAL</item>
<item>BAM</item>
<item>BAN</item>

Thanks awk!

Unix History Command

In order to save myself from painstakingly typing the same commands over and over again I invested a little time in learning about the Unix history command. One workflow that I have found very useful is the following:

!vi - repeats the last vi command that I typed (apply this to any command)
!! - repeats the last command that I typed

history - prints out the entire history with the associated number for each command
example:
100 - vi info.txt
101 - mv info.txt noinfo.txt

history > myhistory.txt - this will store the contents of my history in a file for later reference

Using the information derived from history I can then do the following:
!100 - this will perform the command vi info.txt
more !:$ - this will take the first argument of the last command and perform a new command on it. So in this instance I will essentially have more info.txt.

Amazing stuff, hunh!