Print nth line from file
1sed 'Nq;d' file.txtPrepend text to beginning of file
1echo "new content" | cat - file.txt > temp
2mv temp file.txt1sed -i '1s/^/new content\n/' file.txtRemove lines containing only whitespace
1sed -i '/^\s*$/d' file.txtDelete nth line from file
1# N should be the target line number
2sed -i 'Nd' file.txtReplace an entire line in file by line number
1# N should be the target line number
2sed -i 'Ns/.*/replacement-line/' file.txtHeredoc
1cat << EOF > file.txt
2The current working directory is $PWD.
3You are logged in as $(whoami).
4EOFPlain-print the difference between two files
Suppose we have two files: packages.fedora and packages.
packages.fedora:
1autossh
2bash-completion
3bat
4bc
5borgmatic
6bzip2
7cmake
8curl
9diff-so-fancy
10diffutils
11dnf-plugins-corepackages:
1bash-completion
2bc
3bzip2
4curl
5diffutils
6dnf-plugins-coreTo plain-print the lines that exist in packages.fedora but do not exist in packages:
1comm -23 <(sort packages.fedora) <(sort packages)Output:
autossh
bat
borgmatic
cmake
diff-so-fancy- The
commcommand compares two sorted files line by line. - The
-23flag is shorthand for-2and-3. -2suppresses column 2 (lines unique topackages).-3suppresses column 3 (lines that appear in both files).
Split large text file into smaller files with equal number of lines
1split -l 60 bigfile.txt prefix-Loop through lines of file
1while read line; do
2 echo "$line";
3done </path/to/file.txtUse grep to find URLs from HTML file
1cat urls.html | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*"Use Awk to print the first line of ps aux output followed by each grepped line
To find all cron processes with ps aux:
1ps aux | awk 'NR<2{print $0;next}{print $0 | grep "cron"}' | grep -v "awk"