Difference between revisions of "Sed (editor)"
Jump to navigation
Jump to search
↑ https://stackoverflow.com/a/801036
(68 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | <code>sed</code> utility is using for text processing, such as strings replacements. | + | {{lowercase}} |
+ | <code>[[wikipedia:sed]]</code> ([[1974]]) utility is using for text processing, such as strings replacements. | ||
+ | * Man: https://manpages.ubuntu.com/manpages/noble/en/man1/sed.1.html | ||
+ | * Man: https://man7.org/linux/man-pages/man1/sed.1p.html | ||
+ | sed /xxx/yyy/g | ||
+ | |||
+ | g - global | ||
+ | [[sed -i|-i]] -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied) | ||
+ | [[sed -e|-e]] | ||
+ | |||
+ | -E, -r, --regexp-extended use extended regular expressions in the script (for portability use [[POSIX -E]]). | ||
+ | |||
+ | [[brew install gnu-sed]] | ||
== Sed Basic examples == | == Sed Basic examples == | ||
− | * Append a text (TEST_TO_APPEND_AT_BEGINNIG) at the beginning of a line: <code>sed -i s/^/TEST_TO_APPEND_AT_BEGINNIG/ file.txt</code> | + | |
− | * Append a text (TEST_TO_APPEND_AT_END) at the end of a line: <code>sed -i s/$/TEST_TO_APPEND_AT_END/ file.txt</code> | + | * [[Replace]] all occurrences of TEXT_STRING (<code>/g</code>) |
+ | :: <code>[[sed -i]] s/OLD_TEXT_STRING/NEW_TEXT_STRING/g file.txt</code> | ||
+ | |||
+ | * [[Append]] a text (TEST_TO_APPEND_AT_BEGINNIG) at the [[beginning]] of a line: | ||
+ | :: <code>sed -i s/^/TEST_TO_APPEND_AT_BEGINNIG/ file.txt</code> | ||
+ | |||
+ | :: [[Append a space]] at the beginning of lines: | ||
+ | ::: <code>[[sed s/^./" "/]]</code> | ||
+ | |||
+ | * Append a text (TEST_TO_APPEND_AT_END) at the [[end of a line]] (<[[code]]>$</code>): | ||
+ | :: <code>sed -i s/$/TEST_TO_APPEND_AT_END/ file.txt</code> | ||
+ | |||
+ | * Move N [[lines]] from text file to new file: | ||
+ | :: <code>head -1000 input > output && sed -i '1,+999d' input</code> <ref>https://stackoverflow.com/a/801036</ref> | ||
+ | |||
+ | * Add at the beginning and end of a sentence: <pre><code> and </code></pre> | ||
+ | <pre>sed s/'^'/'\<code\>'/ | sed s/'$'/'\<\/code\>'/</pre> | ||
+ | |||
+ | sed s/^/"[["/ | sed s/$/"]]"/ | ||
+ | |||
+ | * Add * at the beginning of the line: | ||
+ | ::<code>[[sed]] s/^/"*"/ </code> | ||
+ | |||
+ | * Replace [[spaces]]: | ||
+ | :<code>[[sed]] s/' '//g</code> | ||
+ | |||
+ | * Delete characters before a pattern | ||
+ | [[sed -e]] 's/....yourtext/ yourtext/g' file.txt | ||
+ | |||
+ | * sed -Ei 's/^# deb-src /deb-src /' [[/etc/apt/sources.list]] | ||
+ | |||
+ | == Help == | ||
+ | usage: sed script [-Ealn] [-i extension] [file ...] | ||
+ | sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...] | ||
+ | |||
+ | == Related == | ||
+ | * <code>[[awk]]</code> | ||
+ | * <code>[[lineinfile (Ansible)]]</code> | ||
+ | * Concatenate lines on a file using <code>[[tr]]</code> | ||
+ | * <code>cat your_file.txt | [[while read]] i; do echo "YOUR_TEST $i"; done</code> | ||
+ | * <code>cat your_file.txt | [[while read]] i; do echo "$(date) $i"; done</code> | ||
+ | * <code>[[sed -n]]</code> | ||
+ | * [[Chef: Editing a file]]: <code>[[replace_or_add]]</code> | ||
+ | * [[Redirection]]: [[double redirection]] | ||
+ | * [[file (Puppet)]] | ||
+ | * [[prepend]] | ||
+ | * [[kubectl patch]] | ||
+ | * [[gsub]] [[gwak]] | ||
+ | * <code>[[envsubst]]</code> | ||
== See also == | == See also == | ||
− | * | + | * {{sed}} |
+ | * {{vi}} | ||
* {{grep}} | * {{grep}} | ||
− | |||
− | |||
− | |||
− | [[Category:Linux]] | + | [[Category:Linux commands]] |
Latest revision as of 14:42, 4 April 2024
wikipedia:sed
(1974) utility is using for text processing, such as strings replacements.
- Man: https://manpages.ubuntu.com/manpages/noble/en/man1/sed.1.html
- Man: https://man7.org/linux/man-pages/man1/sed.1p.html
sed /xxx/yyy/g
g - global -i -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied) -e
-E, -r, --regexp-extended use extended regular expressions in the script (for portability use POSIX -E).
brew install gnu-sed
Contents
Sed Basic examples[edit]
- Replace all occurrences of TEXT_STRING (
/g
)
sed -i s/OLD_TEXT_STRING/NEW_TEXT_STRING/g file.txt
sed -i s/^/TEST_TO_APPEND_AT_BEGINNIG/ file.txt
- Append a space at the beginning of lines:
- Append a text (TEST_TO_APPEND_AT_END) at the end of a line (<code>$):
sed -i s/$/TEST_TO_APPEND_AT_END/ file.txt
- Move N lines from text file to new file:
head -1000 input > output && sed -i '1,+999d' input
[1]
- Add at the beginning and end of a sentence:
<code> and </code>
sed s/'^'/'\<code\>'/ | sed s/'$'/'\<\/code\>'/
sed s/^/" sed s/$/""/
- Add * at the beginning of the line:
sed s/^/"*"/
- Replace spaces:
sed s/' '//g
- Delete characters before a pattern
sed -e 's/....yourtext/ yourtext/g' file.txt
- sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
Help[edit]
usage: sed script [-Ealn] [-i extension] [file ...] sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
Related[edit]
awk
lineinfile (Ansible)
- Concatenate lines on a file using
tr
cat your_file.txt | while read i; do echo "YOUR_TEST $i"; done
cat your_file.txt | while read i; do echo "$(date) $i"; done
sed -n
- Chef: Editing a file:
replace_or_add
- Redirection: double redirection
- file (Puppet)
- prepend
- kubectl patch
- gsub gwak
envsubst
See also[edit]
sed, gsed
,-n, -i
,Ansible: replace
,append
,Chef: Editing a file
,lineinfile
- Editors:
vi, vim
,sed
,awk
, emacs,lineinfile (Ansible)
, Atom,paste
, Neovim, Rider,visudo, vipw
,update-alternatives
,nano
,more, less
,.vimrc
,set (vi)
zed ack, ag, grep
,egrep, fgrep
,agrep
,ngrep
,pgrep
,awk
,sed
,strings
,tr
,tail
,mtail
,git grep
,wc
,uniq
,LogQL
,findstr (Windows)
,rg, git-grep, cut
Advertising: