sed command
linux의 sed
(Stream editor) 명령은 패턴을 통해 텍스트를 변환하여 출력해주는 스트림 편집기입니다.
help sed
$> sed
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...
-n, --quiet, --silent
suppress automatic printing of pattern space
-e script, --expression=script
add the script to the commands to be executed
-f script-file, --file=script-file
add the contents of script-file to the commands to be executed
--follow-symlinks
follow symlinks when processing in place
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
-l N, --line-length=N
specify the desired line-wrap length for the `l' command
--posix
disable all GNU extensions.
-r, --regexp-extended
use extended regular expressions in the script.
-s, --separate
consider files as separate rather than as a single continuous
long stream.
-u, --unbuffered
load minimal amounts of data from the input files and flush
the output buffers more often
-z, --null-data
separate lines by NUL characters
--help display this help and exit
--version output version information and exit
If no -e, --expression, -f, or --file option is given, then the first
non-option argument is taken as the sed script to interpret. All
remaining arguments are names of input files; if no input files are
specified, then the standard input is read.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
tldr sed
$> tldr sed
sed
Edit text in a scriptable manner.
- Replace the first occurrence of a regular expression in each line of a file, and print the result:
sed 's/regex/replace/' filename
- Replace all occurrences of an extended regular expression in a file, and print the result:
sed -r 's/regex/replace/g' filename
- Replace all occurrences of a string in a file, overwriting the file (i.e. in-place):
sed -i 's/find/replace/g' filename
- Replace only on lines matching the line pattern:
sed '/line_pattern/s/find/replace/' filename
- Delete lines matching the line pattern:
sed '/line_pattern/d' filename
- Print only text between n-th line till the next empty line:
sed -n 'n,/^$/p' filename
- Apply multiple find-replace expressions to a file:
sed -e 's/find/replace/' -e 's/find/replace/' filename
- Replace separator / by any other character not used in the find or replace patterns, e.g., #:
sed 's#find#replace#' filename
- Print only the n-th line of a file:
sed 'nq;d' filename