advanced-bash-techniques advanced-bash-techniques advanced bash techniques find and change all files .. code-block:: bash sudo find . -type f -print0 | xargs -0 ls -hal sudo find . -type f -print0 | xargs -0 sudo chown www-data:www-data sudo find . -type f -print0 | xargs -0 sudo chmod 0644 find and change all directories: sudo find . -type d -print0 | xargs -0 sudo chmod 0775 Remove a particular line from all files in a directory .. code-block:: bash for file in /tmp/test/* do cp -p $file $file.tmp egrep -v “RegexToRemove” $file.tmp > $file rm -rf $file.tmp done apache logs count unique ip addresses .. code-block:: bash sudo cat access.log | awk ‘{ print $1; }’ | sort | uniq -c | sort -n Bash Perl search and replace multiple files one liner .. code-block:: perl perl -pi -w -e ‘s/search/replace/g;’ *.extension explanation: -e means execute the following line of code. -i means edit in-place -w write warnings -p loop Bash sed search and replace multiple files one liner .. code-block:: sed sed -i’’ -e ‘s/search/replace/g’ * Get a coma separated list of libvirt guests .. code-block:: bash virsh list | egrep -v ‘Domain|Name|—-|^$’ | awk ‘{printf “%s,” , $2}’ > /tmp/virthosts