-
Notifications
You must be signed in to change notification settings - Fork 0
/
awk-and-sed.html
25 lines (24 loc) · 9.64 KB
/
awk-and-sed.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html><html lang="de-ch"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Awk and Sed - Finecloud</title><meta name="description" content="awk and sed are text manipulation programs. You can use them for example to replace strings: echo image.jpg | sed 's/\.jpg/.png/' image.png or change order of strings: echo 'hello world' | awk '{print $2, $1}' world hello awk and sed are harder to learn than…"><meta name="generator" content="Publii Open-Source CMS for Static Site"><link rel="stylesheet" href="https://www.finecloud.ch/media/plugins/syntaxHighlighter/prism-black.css"><link rel="canonical" href="https://www.finecloud.ch/awk-and-sed.html"><link rel="alternate" type="application/atom+xml" href="https://www.finecloud.ch/feed.xml"><link rel="alternate" type="application/json" href="https://www.finecloud.ch/feed.json"><meta property="og:title" content="Awk and Sed"><meta property="og:site_name" content="Finecloud"><meta property="og:description" content="awk and sed are text manipulation programs. You can use them for example to replace strings: echo image.jpg | sed 's/\.jpg/.png/' image.png or change order of strings: echo 'hello world' | awk '{print $2, $1}' world hello awk and sed are harder to learn than…"><meta property="og:url" content="https://www.finecloud.ch/awk-and-sed.html"><meta property="og:type" content="article"><link rel="shortcut icon" href="https://www.finecloud.ch/media/website/finecloud.png" type="image/png"><link rel="stylesheet" href="https://www.finecloud.ch/assets/css/style.css?v=39da73365516a098a9b73b721fc970e2"><script type="application/ld+json">{"@context":"http://schema.org","@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.finecloud.ch/awk-and-sed.html"},"headline":"Awk and Sed","datePublished":"2024-04-05T20:57","dateModified":"2024-04-05T20:58","description":"awk and sed are text manipulation programs. You can use them for example to replace strings: echo image.jpg | sed 's/\\.jpg/.png/' image.png or change order of strings: echo 'hello world' | awk '{print $2, $1}' world hello awk and sed are harder to learn than…","author":{"@type":"Person","name":"Finecloud","url":"https://www.finecloud.ch/authors/finecloud/"},"publisher":{"@type":"Organization","name":"Finecloud"}}</script><meta name="google-site-verification" content="seFY9U12uiEq5U3_MyZiX6XWzk0AVFl9zITr2ZKsytY"></head><body><div class="site-container"><header class="top" id="js-header"><a class="logo" href="https://www.finecloud.ch/">Finecloud</a><nav class="navbar js-navbar"><button class="navbar__toggle js-toggle" aria-label="Menu" aria-haspopup="true" aria-expanded="false"><span class="navbar__toggle-box"><span class="navbar__toggle-inner">Menu</span></span></button><ul class="navbar__menu"><li><a href="https://www.finecloud.ch/" target="_self">Blog</a></li><li><a href="https://www.finecloud.ch/tags/" target="_self">Tags</a></li></ul></nav><div class="search"><div class="search__overlay js-search-overlay"><div class="search__overlay-inner"><form action="https://www.finecloud.ch/search.html" class="search__form"><input class="search__input js-search-input" type="search" name="q" placeholder="search..." aria-label="search..." autofocus="autofocus"></form><button class="search__close js-search-close" aria-label="Close">Close</button></div></div><button class="search__btn js-search-btn" aria-label="Search"><svg role="presentation" focusable="false"><use xlink:href="https://www.finecloud.ch/assets/svg/svg-map.svg#search"/></svg></button></div></header><main><article class="post"><div class="hero"><figure class="hero__image hero__image--overlay"><img src="https://www.finecloud.ch/media/website/download.jpg" srcset="https://www.finecloud.ch/media/website/responsive/download-xs.jpg 300w, https://www.finecloud.ch/media/website/responsive/download-sm.jpg 480w, https://www.finecloud.ch/media/website/responsive/download-md.jpg 768w, https://www.finecloud.ch/media/website/responsive/download-lg.jpg 1024w, https://www.finecloud.ch/media/website/responsive/download-xl.jpg 1360w, https://www.finecloud.ch/media/website/responsive/download-2xl.jpg 1600w" sizes="100vw" loading="eager" alt=""></figure><header class="hero__content"><div class="wrapper"><div class="post__meta"><time datetime="2024-04-05T20:57">April 5, 2024</time></div><h1>Awk and Sed</h1></div></header></div><div class="wrapper post__entry"><p>awk and sed are text manipulation programs. You can use them for example to replace strings:</p><pre class="language-bash"><code>echo image.jpg | sed 's/\.jpg/.png/'
image.png
</code></pre><p>or change order of strings:<br></p><pre class="language-bash"><code>echo "hello world" | awk '{print $2, $1}'
world hello
</code></pre><p>awk and sed are harder to learn than some other basic linux cli tools because they contain their own small programming language.<br></p><h2 id="awk-basics">awk basics</h2><p>awk transforms lines of text (stdin) into any other text, using a set of instructions (called the awk program):</p><pre class="language-bash"><code>awk program input-files
</code></pre><p>a awk program can also contain one or more `actions`, for example calculating values or printing text. These `actions` run only when an input matches a `pattern`:<br>`pattern {action}`</p><p>typical patterns include:</p><ul><li>`BEGIN` runs once before the awk processes any input</li><li>`END` run once after awk has processed all the input</li><li>A Regex surrounded by forward slashes, example: `/^[A-Z]/`</li><li>other awk specific expressions, example: `FNR>5` tells awk to skip the first five lines of input</li></ul><p><br>A `pattern` with no `action` runs the default action `{print}` .<br>awk can also perform calculations such as these:</p><pre class="language-bash"><code>seq 1 100 | awk '{s+=$1} END {print s}'
5050</code></pre><p>(sum numbers 1 to 100)</p><h2 id="sed-basics">sed basics</h2><p>sed like awk can be used to transform text from stdin to any other text using instructions called `sed scripts`:</p><pre class="language-bash"><code>sed script input-files</code></pre><p>the most common use case for sed is text replacement, like in this example:<br></p><pre class="language-bash"><code>echo "Windows eats Linux for breakfast" | sed s/Windows/Linux/g | sed s/Linux/Windows/2
</code></pre><p></p></div><footer class="wrapper post__footer"><p class="post__last-updated">This article was updated on April 5, 2024</p><ul class="post__tag"><li><a href="https://www.finecloud.ch/tags/awk/">awk</a></li><li><a href="https://www.finecloud.ch/tags/bash/">bash</a></li><li><a href="https://www.finecloud.ch/tags/linux/">linux</a></li><li><a href="https://www.finecloud.ch/tags/sed/">sed</a></li><li><a href="https://www.finecloud.ch/tags/shell/">shell</a></li></ul><div class="post__share"></div></footer></article><nav class="post__nav"><div class="post__nav-inner"><div class="post__nav-prev"><svg width="1.041em" height="0.416em" aria-hidden="true"><use xlink:href="https://www.finecloud.ch/assets/svg/svg-map.svg#arrow-prev"/></svg> <a href="https://www.finecloud.ch/how-to-do-a-code-review.html" class="post__nav-link" rel="prev"><span>Previous</span> How to do a code review</a></div><div class="post__nav-next"><a href="https://www.finecloud.ch/github-codespace.html" class="post__nav-link" rel="next"><span>Next</span> GitHub Codespace </a><svg width="1.041em" height="0.416em" aria-hidden="true"><use xlink:href="https://www.finecloud.ch/assets/svg/svg-map.svg#arrow-next"/></svg></div></div></nav><div class="post__related related"><div class="wrapper"><h2 class="h5 related__title">You should also read:</h2><article class="related__item"><div class="feed__meta"><time datetime="2022-07-23T05:56" class="feed__date">Juli 23, 2022</time></div><h3 class="h1"><a href="https://www.finecloud.ch/monitor-proxmox-mit-grafana-und-prometheus.html">Monitor Proxmox mit Grafana und Prometheus</a></h3></article><article class="related__item"><div class="feed__meta"><time datetime="2022-07-01T18:59" class="feed__date">Juli 1, 2022</time></div><h3 class="h1"><a href="https://www.finecloud.ch/kubernetes-auf-proxmox-mit-ansible-und-terraform.html">Kubernetes auf Proxmox mit Ansible und Terraform (Teil 1)</a></h3></article><article class="related__item"><div class="feed__meta"><time datetime="2022-06-17T06:44" class="feed__date">Juni 17, 2022</time></div><h3 class="h1"><a href="https://www.finecloud.ch/tabby.html">Tabby Config-Sync auf Nextcloud einrichten</a></h3></article></div></div></main><footer class="footer"><div class="footer__copyright"><p>Powered by Publii</p></div><button onclick="backToTopFunction()" id="backToTop" class="footer__bttop" aria-label="Back to top" title="Back to top"><svg><use xlink:href="https://www.finecloud.ch/assets/svg/svg-map.svg#toparrow"/></svg></button></footer></div><script>window.publiiThemeMenuConfig = {
mobileMenuMode: 'sidebar',
animationSpeed: 300,
submenuWidth: 'auto',
doubleClickTime: 500,
mobileMenuExpandableSubmenus: true,
relatedContainerForOverlayMenuSelector: '.top',
};</script><script defer="defer" src="https://www.finecloud.ch/assets/js/scripts.min.js?v=6ca8b60e6534a3888de1205e82df8528"></script><script>var images = document.querySelectorAll('img[loading]');
for (var i = 0; i < images.length; i++) {
if (images[i].complete) {
images[i].classList.add('is-loaded');
} else {
images[i].addEventListener('load', function () {
this.classList.add('is-loaded');
}, false);
}
}</script><script defer="defer" src="https://www.finecloud.ch/media/plugins/syntaxHighlighter/prism.js"></script></body></html>