Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Goal: Use various commands to view, inspect and search a text file.



Setting Up

Question:

  • There is a folder called intro_to_linux within the /project/arccanetrain/ folder.

  • How would you copy this folder into your home folder?

  • Before moving on, please make sure you get this copied over correctly.

  • All further exercises assume you will be working within this folder, within the home folder

  • As you work through exercises take note of the []$ cd ~/intro_to_linux - remember the tilda character ~ is a shortcut for the home folder.


Setting Up: Answer(s)

Answer: There are a number of ways…

Method 01: Move to your home folder and copy into this location.

The . marks the current working directory.

[arccanetrain]$ cd 
[~]$ cp -r /project/arccanetrain/intro_to_linux/ .
cp: cannot open 'intro_to_linux/workshop_me.txt' for reading: Permission denied
[~]$ ls
Desktop  Documents  Downloads  intro_to_linux

Method 02: Move into the /project/arccatrain/ folder and copy from there into your home.
Remember, the ~ is short for your home folder.

[~]$ cd /project/arccanetrain/
[arccanetrain]$ cp -r intro_to_linux/ ~
cp: cannot open 'intro_to_linux/workshop_me.txt' for reading: Permission denied
[arccanetrain]$ ls ~
Desktop  Documents  Downloads  intro_to_linux

In both cases you do not have permissions to copy workshop_me.txt - this is intentional and a good remind to check the permissions/ownerships of files.

Question: What do you notice about the permissions of this file?

# -rw-------  1 arcc-t05 arccanetrain      23 Oct  5 07:20  workshop_me.txt

Only the owner of this file (arcc-t05) has permission to read/write, and thus copy this file.

Any other user can not copy this file, and thus it will not be copied as part of everything else.


View the content of files

Command

Description

cat

Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.
 -n, --number
              number all output lines

more

more [options] <file>...
A file perusal filter for CRT viewing.
more  is a filter for paging through text one screenful at a time.

head

Usage: head [OPTION]... [FILE]...
Print the first 10 lines of each FILE to standard output.
 -n, --lines=[-]NUM       print the first NUM lines instead of the first 10;
                             with the leading '-', print all but the last
                             NUM lines of each file

View the content of files

Command

Description

tail

Usage: tail [OPTION]... [FILE]...
Print the last 10 lines of each FILE to standard output.
 -f, --follow[={name|descriptor}]
                           output appended data as the file grows;
                             an absent option argument means 'descriptor’
 -n, --lines=[+]NUM       output the last NUM lines, instead of the last 10;
                             or use -n +NUM to output starting with line NUM

Exercises

[]$ cd ~/intro_to_linux/
[intro_to_linux]$ cat software.csv
[intro_to_linux]$ cat -n software.csv
# Press spacebar to scroll through.
# Press ‘q’ to quit at any time.
[intro_to_linux]$ more software.csv
[intro_to_linux]$ head software.csv
[intro_to_linux]$ head –n 5 software.csv
[intro_to_linux]$ tail software.csv
[intro_to_linux]$ tail –n 5 software.csv

Search for a string within a text file (grep) 

Command

Description

grep

Usage: grep [OPTION]... PATTERN [FILE]...
Search for PATTERN in each FILE.
Example: grep -i 'hello world' menu.h main.c
...
 -i, --ignore-case         ignore case distinctions
...
 -n, --line-number         print line number with output lines
...
 -r, --recursive           like --directories=recurse
...
# grep is case-sensitive

Examples: Search a file

[intro_to_linux]$ grep nvidia software.csv
[intro_to_linux]$
# Remember: grep is case-sensitive
[intro_to_linux]$ grep NVIDIA software.csv
libraries and toolkits,cuDNN,cudnn,beartooth,The NVIDIA CUDA Deep...
libraries and toolkits,TensorRT,,beartooth,"NVIDIA TensorRT, an...
# Some items returned, but there could be others.
# Neither of the above picked up “Nvidia”.
[intro_to_linux]$ grep -i NVidia software.csv
compiler,NVidia HPC SDK,nvhpc,"beartooth,teton"...
libraries and toolkits,cuDNN,cudnn,beartooth,The NVIDIA CUDA Deep...
libraries and toolkits,TensorRT,,beartooth,"NVIDIA TensorRT, an...
# Ignore the case of the word to search for.
[intro_to_linux]$ grep -n -i NVidia software.csv
145:compiler,NVidia HPC SDK,nvhpc,"beartooth,teton"...
152:libraries and toolkits,cuDNN,cudnn,beartooth,The NVIDIA CUDA Deep...
166:libraries and toolkits,TensorRT,,beartooth,"NVIDIA TensorRT, an...
# Include the line # from which the text was found.

Examples: Search folders and files

[intro_to_linux]$ cd clusters/
[clusters]$ grep -i nvidia *
beartooth.html:    .../788758554/NVidia+HPC+SDK">NVidia HPC SDK</a></td>
teton.html:    .../788758554/NVidia+HPC+SDK">NVidia HPC SDK</a></td>
[clusters]$ cd ..
[intro_to_linux]$ grep -i nvidia *
grep: clusters: Is a directory
software.csv:compiler,NVidia HPC SDK,nvhpc,"beartooth,teton"...
software.csv:libraries and toolkits,cuDNN,cudnn,beartooth,The NVIDIA CUDA Deep...
software.csv:libraries and toolkits,TensorRT,,beartooth,"NVIDIA TensorRT, an...
[intro_to_linux]$ grep -r -i nvidia *
clusters/teton.html:    .../788758554/NVidia+HPC+SDK">NVidia HPC SDK</a></td>
clusters/beartooth.html:    .../788758554/NVidia+HPC+SDK">NVidia HPC SDK</a></td>
software.csv:compiler,NVidia HPC SDK,nvhpc,"beartooth,teton"...
software.csv:libraries and toolkits,cuDNN,cudnn,beartooth,The NVIDIA CUDA Deep...
software.csv:libraries and toolkits,TensorRT,,beartooth,"NVIDIA TensorRT, an...

Exercises

# The software.csv file takes the form:
[intro_to_linux]$ head software.csv
Type,Name,Module,Cluster,Description
application,Alphafold,alphafold,"beartooth,teton",AlphaFold...
application,Astral,astral,wildiris,ASTRAL is a tool...
application,Augustus,augustus,beartooth,AUGUSTUS is a program...
application,Avizo,avizo,loren-pre202308,Avizo is a general-purpose...
application,ANGSD,angsd,"beartooth,teton",ANGSD: is a software...
application,ANSYS,ansys,teton,"ANSYS is a general-purpose software...

Questions:

  1. Which named applications are related to the words “bayes”?

  2. Which files contain reference to IPA?


Answers

[intro_to_linux]$ grep -i bayes software.csv
application,Bayescan,bayescan,beartooth,"BayeScan aims...
application,Beast1,beast1,wildiris,BEAST is a cross-platform program for Bayesian...
application,Beast2,beast2,beartooth,"BEAST 2 is a cross-platform program for Bayesian...
application,Freebayes,freebayes,beartooth,"freebayes is a Bayesian genetic...
application,Jags,jags,"beartooth,teton",Just Another Gibbs Sampler. It is a program for analysis of Bayesian hierarchical...
application,RevBayes,revbayes,wildiris,Bayesian phylogenetic...
application,ROHan,rohan,teton,"ROHan is a Bayesian framework...
application,SourceTracker2,sourcetracker2,"beartooth,teton","SourceTracker, a Bayesian approach...
[intro_to_linux]$ grep -r IPA *
clusters/beartooth.html:    .../pages/1893597185/IPA">IPA</a></td>
software.csv:application,IPA,ipa,beartooth,Improved Phased Assembler (IPA) is...

Next Steps

 

  • No labels