Shell general commands

Create multiple folders

mkdir Folder_{00,01,02,03} 
mkdir Folder_{01..10}

Commands history

!! #re-execute last cmd
! CMD-No # exe cmd
fc -s CMD-NO # exe cmd
cat FILE; vim !$ #vim edit last display

Join multi files

join FILE1 FILE2 | join - FILE3 | join -v1 - FILE4 | join -a2 - FILE5

Command line text handling

CTL + U # erase the whole line
CTL + W # erase one word in the current line


mv FILE1 FILE2 # rename file1 to file2
for i in *.txt; do mv "$i" "${i/[0-9]*}"


cat -n FILE1 FILE2 # number each line
cat -b # number line except blank lines
cat -s # replace 2 continuing blank lines to 2

Product sequential ids

seq 30000 33480 | awk '{print "Smp_" $1 "0"}'

Create a link

ln -s <source file> <symbolic file>

Sort: first on column 1 and then on column2 (numbers)

sort -k1,1 -k2,2n

Sequential numbers

for i in $(seq 1 3) $(seq 5 9) 25; do echo $i; done # 1 2 3 5 6 7 8 9 25

Cat too many files with the error: argument too long

cd file_directory
ls | xargs -n 32 -P 8 cat >>../outfile

To execute commands in a file

sh -e FILE.txt

To replace whitespace with tab (sed not working)

tr ' ' '\t'

Append file name to each line

awk '{print $0, FILENAME}' INPUT_FILE

Piping and Chaining

grep 'TEXT' file.txt | sort 
./ && head outfile.txt # '&&' wait for command to finish then next

Show all files

ls -alhG
# ./bash_profile: alias ls="ls -alhG"
Z. Lu avatar
Z. Lu
Data science, bioinfo, scripting, parasites, retro, plain text.
comments powered by Disqus