Skip to main content

[linux] sed

Sed - UNIX Stream Editor

Usage:

sed [options] ‘instructions’ file.txt | PIPE | STDIN
Example file:
file.txt
one
two
three
one1
two10
three one

Meta-characters:

”^” - matches character(s) at the beginning of a line:
sed -ne '/^pattern/p'  file.txt
”$” - matches character(s) at the end of a line:
sed -ne '/pattern$/p'  file.txt
- match line which contain only “pattern”:
sed -ne '/^pattern$/p'  file.txt

RegEx quantifiers:

”.” - matches any character (typically expect new line)
“*” - 0 or more matches of the previous character
”+” - 1 or more matches of the previous character
”?” - 0 or 1 of the previous character

Character classes:

a. [0-9]
b. [a-z]
NOTE: Character classes match one and only one character.
- print first line:
sed -ne '1p' file.txt
- prints last printable line:
sed -ne '$p' file.txt
- prints lines 2-4 from file:
sed -ne '2,4p' file.txt
- prints all lines except line 1:
sed -ne '1!p' file.txt
- prints all lines with at least one numeric charter:
sed -ne '/[0-9]/p' file.txt
- prints the line with “pattern” plus 2 extra lines:
sed -ne '/pattern/, +2p' file.txt
- print section of file from a line containing “pattern” to end of file:
sed -ne '/pattern/, $p' file.txt
- delete blank lines:
sed -e '/^$/d' file.txt
- deletes every 2nd line beginning with line 1 (1,3,5…):
sed -e '1~2d' file.txt
- replace pattern (case insensitive):
sed -e 's/one/two/Ig' file.txt
- edit files in place and backup:
sed -i.bak -e 's/one/two/Ig' file.txt
- multiply instructions - removes blank lines & substitutes patterns:
sed -e '/^$/d' -e 's/one/two/Ig' file.txt
or
sed -e '/^$/d; s/one/two/Ig' file.txt
- search and replace - substitutes “one” with “two” where line contains “three”:
sed -ne '/three/s/one/two/gp' file.txt

SED reserves few characters based on matched pattern:

“&” - pattern matched OR the values in the pattern space
sed -ne 's/.*/&/p' file.txt
sed -ne 's/.*/Example: &/p' file.txt
- returns pattern with at least 1 numeric at the end of the name:
sed -ne 's/.*[0-9]/&/p' file.txt
- returns pattern with only 1 numeric at the end of the name:
sed -ne 's/[a-z][0-9]\{1\}$/&/pI' file.txt
- returns pattern with at least 1, up to 4 numeric values:
sed -ne 's/[a-z][0-9]\{1,4\}$/&/pI' file.txt

Grouping & Back-references:

- creates two variables \1 & \2 and references \1 & \2
sed -ne 's/\([a-z]\)\([0-9]\)/\1 \2/p' file.txt

Comments

  1. I like your effort Guys, So when you want any file converter then this will help you;

    File Converter Free

    ReplyDelete

Post a Comment

Popular posts from this blog

Browser User Agent List

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0;...

[linux] Adjusting child processes for PHP-FPM (Nginx)

Adjusting child processes for PHP-FPM (Nginx) Problem: The following warning message appears in the logs: [26-Jul-2012 09:49:59] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 8 idle, and 58 total children [26-Jul-2012 09:50:00] WARNING: [pool www] server reached pm.max_children setting (50), consider raising it It means that there are not enough PHP-FPM processes. Solution: We need to calculate and change these values based on the amount of memory on the system: /etc/php-fpm.d/www.conf pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 - the following command will help us to determine the memory used by each (PHP-FPM) child process: ps -ylC php-fpm --sort:rss The RSS column shows non-swapped physical memory usage by PHP-FPM processes in kilo Bytes. On an average each PHP-FPM process took ~75MB of RAM on my machine. Appropriate valu...

[symfony] Assert in Entity

* @Assert\NotBlank() * @Assert\Blank() * @Assert\NotNull() * @Assert\Null() * @Assert\True(message = "The token is invalid") * @Assert\False( *     message = "You've entered an invalid state." * ) * @Assert\Type(type="integer", message="The value {{ value }} is not a valid {{ type }}.") is_ array bool callable float double int integer long null numeric object real resource scalar string ctype_ alnum alpha cntrl digit graph lower print punct space upper xdigit * @Assert\Email( *     message = "The email '{{ value }}' is not a valid email.", *     checkMX = true * ) * @Assert\Length( *      min = 2, *      max = 50, *      minMessage = "Your first name must be at least {{ limit }} characters long", *      maxMessage = "Your first name cannot be longer than {{ limit }} characters long" * ...