relpipe-data/examples-rename-vg-fstab.xml
branchv_0
changeset 244 d4f401b5f90c
parent 241 f71d300205b7
child 329 5bc2bb8b7946
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/relpipe-data/examples-rename-vg-fstab.xml	Tue Feb 05 19:18:28 2019 +0100
@@ -0,0 +1,46 @@
+<stránka
+	xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
+	xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro">
+	
+	<nadpis>Renaming VG in /etc/fstab using relpipe-tr-sed</nadpis>
+	<perex>sed-like substitutions in the relational stream</perex>
+	<m:pořadí-příkladu>00700</m:pořadí-příkladu>
+
+	<text xmlns="http://www.w3.org/1999/xhtml">
+		
+		<p>
+			Assume that we have an <code>/etc/fstab</code> with many lines defining the mount-points (directories) of particular devices (disks) and we are using LVM.
+			If we rename a volume group (VG), we have to change all of them. The lines look like this one:
+		</p>
+		
+		<pre>/dev/alpha/photos    /mnt/photos/    btrfs    noauto,noatime,nodiratime    0  0</pre>
+		
+		<p>
+			We want to change all lines from <code>alpha</code> to <code>beta</code> (the new VG name).
+			This can be done by the power of regular expressions<m:podČarou>see <a href="https://en.wikibooks.org/wiki/Regular_Expressions/Simple_Regular_Expressions">Regular Expressions</a> at Wikibooks</m:podČarou> and this pipeline:
+		</p>
+		
+		<m:pre jazyk="bash"><![CDATA[relpipe-in-fstab \
+	| relpipe-tr-sed 'fstab' 'device' '^/dev/alpha/' '/dev/beta/' \
+	| relpipe-out-fstab]]></m:pre>
+	
+		<p>
+			The <code>relpipe-tr-sed</code> tool works only with given relation (<code>fstab</code>) and given attribute (<code>device</code>)
+			and it would leave untouched other relations and attributes in the stream.
+			So it would not replace the strings on unwanted places (if there are any random matches).
+		</p>
+		
+		<p>
+			Even the relation names and attribute names are specified as a regular expression, so we can (purposefully) modify multiple relations or attributes.
+			For example we can put zeroes in both <code>dump</code> and <code>pass</code> attributes:
+		</p>
+		
+		<m:pre jazyk="bash"><![CDATA[relpipe-in-fstab | relpipe-tr-sed 'fstab' 'dump|pass' '.+' '0' | relpipe-out-fstab]]></m:pre>
+		
+		<p>
+			n.b. the data types must be respected, we can not e.g. put <code>abc</code> in the <code>pass</code> attribute because it is declared as <code>integer</code>.
+		</p>
+		
+	</text>
+
+</stránka>