Version 5 (modified by 14 years ago) ( diff ) | ,
---|
Table of Contents
SysAdmin Tips
Renaming multiple files
for i in *.avi; do j=`echo $i | sed 's/find/replace/g'`; mv "$i" "$j"; done
for i in *.phtml; do mv $i ${i%.phtml}.php; done
Deleting files matching a pattern
find opt/Products -name "*.pyc" -exec rm '{}' \;
Sed: Stream Editor
sed 's/old/new/g' input.txt > output.txt
Faster:
sed '/old/ s/old/new/g' input.txt > output.txt
Do on a folder full of files:
#! /bin/sh # Source files are saved as "filename.txt.bak" in case of error # The '&&' after cp is an additional safety feature for file in *.txt do cp $file $file.bak && sed 's/foo/bar/g' $file.bak >$file done
Insert paragraph:
- e.g. search for lines `#include <termios.h>' and then write:
#ifdef SYSV #include <termios.h> #else #include <sgtty.h> #endif
Now, for writing the same script on one line, the -e mechanism is needed... what follows each -e can be considered as an input line from a sed script file, so nothing kept us from doing:
sed -e '/#include <termios\.h>/{' \ -e 'i\' \ -e '#ifdef SYSV' \ -e 'a\' \ -e '#else\' \ -e '#include <sgtty.h>\' \ -e '#endif' \ -e '}'
1-liners:
Tutorial:
Collected resources:
Adding a swapfile
If you have a live system which you need to give extra swapspace too without a reboot, then can add a swapfile.
Note that a swapfile is much slower than a swap partition, which is -of course- slower than memory. The reason for this is to save the ship when the boat's going down, not increase preformance.
Create file:
dd if=/dev/zero of=/swapfile count=[size of swap, in 512B blocks]
Format it:
mkswap /swapfile -p 16384
Tell the kernel to use it at an lower priority (i.e. only use when swap parition is full):
swapon -p 16384 /swapfile
Attachments (2)
- do_it_with_sed.txt (54.8 KB ) - added by 14 years ago.
- sed1line.txt (18.4 KB ) - added by 14 years ago.
Download all attachments as: .zip