files and directories
grep in compressed files
bash
# -A lines to show after match
# -B lines to show before match
zgrep -A 50 -B 50 'command_status: 1281' files-*
# -E use regular expression in search
zgrep -E 'command_status: [1-9]' files-*who's writing to a file
bash
fatrace | grep file.loglist file extensions, recursively
bash
find . -type f -printf "%f\n" | awk -F. 'NF > 1 && $NF != "" {print $NF}' | sort -ucreate temporary file
bash
$ mktemp
/tmp/tmp.UHHyLzjCB0bash
$ tempfile
/tmp/fileR5dt6rremove windows line breaks
bash
sudo dnf install -y dos2unix
dos2unix original.csvbash
sudo apt-get install -y dos2unix
dos2unix original.csvsplit a file in small pieces
bash
split --verbose --bytes=<size> -d <file> <prefix>where:
--bytes=<size>is the maximum size of each piece, in bytes, or an interger folloed byK,M,G,T,P,E,Z,Y-dadds a numeric suffix in the end of the file name<prefix>the name of every piece
an example: an iso file can be sliced in several 1Gb files:
bash
$ split --verbose --bytes=1G -d imagefile.iso img
creating file "img00"
creating file "img01"
creating file "img02"
creating file "img03"
creating file "img04"to join these files back together, use
bash
cat img00 img01 img02 img03 img04 > imagem.isolisting only one column of a file
a file with columns separated by : can have its data displayed like this
bash
cat file.log | cut -d":" -f4showing a file content, removing duplicates
bash
cat file.log | awk '!a[$0]++'list the recursive contents of a directory
bash
ls -R /my_path | awk '
/:$/&&f{s=$0;f=0}
/:$/&&!f{sub(/:$/,"");s=$0;f=1;next}
NF&&f{ print s"/"$0 }'besides showing the contents recursively, this command also shows the full path of the files, not just the names.
reference: AskUbuntu.com
get a file mime-type
bash
file --mime-type -b my_filefind file by content
bash
grep -lr "text to fine" *.txt