{"id":114,"date":"2013-03-11T08:34:29","date_gmt":"2013-03-11T07:34:29","guid":{"rendered":"http:\/\/sam-soul.fr\/Info\/?p=114"},"modified":"2013-03-11T08:34:29","modified_gmt":"2013-03-11T07:34:29","slug":"grep-awk-sed","status":"publish","type":"post","link":"http:\/\/les-fougs.com\/wordpress\/2013\/03\/11\/grep-awk-sed\/","title":{"rendered":"grep &#8211; awk &#8211; sed"},"content":{"rendered":"<h3 style=\"background-color: #63f496; color: #000000; padding-bottom: 4pt; padding-top: 4pt; font-size: medium; font-family: 'Times New Roman'; line-height: normal;\"><strong>SOMMAIRE<\/strong><\/h3>\n<p style=\"margin-left: 0pt; margin-right: 0pt;\"><strong>1- Numeroter &#8211; compter &#8211; additionner &#8211; cumuler<br \/>\n2- operations sur les champs : NF<br \/>\n3- operations sur les lignes : NR &#8211; occurrences<br \/>\n4- pattern<br \/>\n5- Remplacer des lignes des chiffres ou des lettres<br \/>\n6- Supprimer ou inserer des lignes blanches ,espaces ,tabulations<br \/>\n7- Inserer<br \/>\n8- divers<\/strong><\/p>\n<h2 style=\"background-color: #fff0bc; color: #000000; font-weight: bold; font-size: medium; margin-left: 0pt; margin-right: 0pt; padding: 10pt; font-family: 'Times New Roman'; line-height: normal;\">L&rsquo;execution du script peut d\u00e9pendre de la version de Linux install\u00e9e. Parfois le script s&rsquo;execute dans un &laquo;&nbsp;sous shell&nbsp;&raquo; (en tapant &lsquo;sh&rsquo;) (taper &lsquo;exit&rsquo; pour sortir)<\/h2>\n<h3 style=\"background-color: #63f496; color: #000000; padding-bottom: 4pt; padding-top: 4pt; font-size: medium; font-family: 'Times New Roman'; line-height: normal;\"><strong>@1-Numeroter &#8211; compter &#8211; additionner &#8211; cumuler<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong><strong><strong>Affiche le nombre de lignes (avec les lignes vides)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n -e &lsquo;$=&rsquo; in.txt<br \/>\nawk &lsquo;END{print NR}&rsquo; in.txt<br \/>\nawk &lsquo;{n++} END{print n}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Affiche le nombre de lignes (sans les lignes vides)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;\/.\/ {print}&rsquo; in.txt | wc -l<br \/>\ngrep &laquo;&nbsp;.&nbsp;&raquo; in.txt | wc -l<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Somme avec cumul de la colonne 1<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print (total +=$1)}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Print le nombre de mots<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{x=x+NF}END{print x}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Compte nombre de lignes contenant le pattern &lsquo;titi&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;\/titi\/{x+=1}END{print x}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Print le numero de chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print NR,$0}&rsquo; in.txt<br \/>\nc=0; while read line; do ((c+=1)); echo $c $line; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>compteur vertical<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>for i in `seq 1 15`;do echo &laquo;&nbsp;$i&nbsp;&raquo;;done<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Compte le nombre de lignes vides d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;\/^$\/ {x += 1};END {print x }&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Compter le nombre de mots d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | wc -w<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>compter le nombre de lignes et de mots<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;BEGIN{nl=0;nw=0} {nl++;nw+=NF} END {print &laquo;&nbsp;lines:&nbsp;&raquo;,nl, &laquo;&nbsp;words:&nbsp;&raquo;,nw}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>compter un caractere (ici: i)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>var=`cat in.txt` ; var=&nbsp;&raquo;${var\/\/[^i]\/}&nbsp;&raquo; ; echo ${#var}<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>affiche le numero de ligne du pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -n &laquo;&nbsp;pattern&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Compter le nombre d&rsquo;occurrences de &lsquo;pattern&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -c &laquo;&nbsp;pattern&nbsp;&raquo; in.txt<br \/>\nawk &lsquo;\/pattern\/ {n++} END {print n}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Numeroter toutes les lignes contenant &lsquo;pattern&rsquo; (affiche 1 numero par ligne)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/pattern\/=&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Numeroter toutes les lignes entre 2 patterns (affiche 1 numero par ligne)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/pattern1\/,\/pattern2\/{=;d;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Numeroter les lignes sans les lignes blanches<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>nl in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Numeroter les lignes avec les lignes blanches<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat -n in.txt<br \/>\nsed = in.txt | sed &lsquo;N; s\/\\n\/\\t\/&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Numeroter les lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print NR,$0}&rsquo; in.txt<br \/>\nwhile read line; do N=$((N+1)); echo &laquo;&nbsp;Line $N = $line&nbsp;&raquo;; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Ecrire le nom du fichier devant chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -H &laquo;&nbsp;pattern&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Somme et cumul d&rsquo;une colonne ($2) , en utilisant 1 colonne clef ($1)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{arr[$1]+=$2} END {for(i in arr) {print i, arr[i]}}&rsquo; in.txt | sort<\/strong><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"background-color: #63f496; color: #000000; padding-bottom: 4pt; padding-top: 4pt; font-size: medium;\"><strong>@2-Operations sur les champs : NF<\/strong><\/h3>\n<\/li>\n<li><strong><strong><strong>Compter le nombre de champs de chaque ligne (separateur = &laquo;&nbsp;,&nbsp;&raquo;)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{cnt=0 ; for(i=1; i&lt;=NF; i++) {if($i != &laquo;&nbsp;&nbsp;&raquo;) {cnt++}} {print NR &nbsp;&raquo; : &laquo;&nbsp;cnt&nbsp;&raquo; fields&nbsp;&raquo;}}&rsquo; FS=&nbsp;&raquo;,&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les 5 premiers caract\u00e8res de toutes les lignes d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>while read line;do echo ${line::5};done &lt; in.txt<br \/>\nwhile read line ; do echo $line | cut -c1-5 ; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Deleter les 5 premiers caracteres de toutes les lignes d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>colrm 1 5 &lt; in.txt<br \/>\nawk &lsquo;sub(&laquo;&nbsp;^&#8230;..&nbsp;&raquo;, &laquo;&nbsp;&nbsp;&raquo;)&rsquo; in.txt<br \/>\nwhile read line ; do echo $line | cut -c6- ; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les 5 derniers caracteres de toutes les lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;s\/^.*\\(&#8230;..\\)$\/\\1\/&rsquo; in.txt<br \/>\nsed &lsquo;s\/\\(.*\\)\\(.\\{5\\}\\)\/\\2\/&rsquo; in.txt<br \/>\nwhile read line;do echo ${line: -5};done &lt; in.txt<br \/>\nawk &lsquo;{print substr($0, length($0) &#8211; 4, length($0) ) }&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Deleter les 5 derniers caracteres de toutes les lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;sub(&laquo;&nbsp;&#8230;..$&nbsp;&raquo;, &laquo;&nbsp;&nbsp;&raquo;)&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer un champ<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo &laquo;&nbsp;data1 line1&nbsp;&raquo; | sed &lsquo;s\/.* \/\/&rsquo;<br \/>\necho &laquo;&nbsp;data1 line1&nbsp;&raquo; | sed -n &lsquo;s\/.* \/\/;p&rsquo;<br \/>\nresultat: line1<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer le dernier champ<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{$NF=&nbsp;&raquo;&nbsp;&raquo;; print $0}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Champ tampon &lsquo;elapse&rsquo; pour operations intermediaires<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{elapse = $1\/3600; if(elapse&lt;8) print int($1\/3600)}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Dans champ 1, a la position 2, printer 3 caracteres<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print substr($1,2,3)}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Print l&rsquo;avant dernier champ ($NF-1) de chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print $(NF-1)}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Print le nombre de champs uniquement<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print NF}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Print le nombre maximum de champs<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print NF}&rsquo; in.txt | sort -n | sed -n &lsquo;$p&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Print le nombre minimum de champs<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print NF}&rsquo; in.txt | sort -n | sed -n &lsquo;1p&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer 2 colonnes en precisant le separateur<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk -F'[ ]&rsquo; &lsquo;{print $2,$3}&rsquo; in.txt<br \/>\ncut -d &lsquo; &lsquo; -f2,3 in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer du 5eme caractere au dernier (inclus) sur toutes les lignes d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | cut -c &lsquo;5-&lsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer du 1er au 5eme caractere (inclus) sur toutes les lignes d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | cut -c &lsquo;-5&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer du 3eme au 5eme caractere (inclus) et du 7eme au 9eme (inclus) sur toutes les lignes d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | cut -c &lsquo;3-5,7-9&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les lignes dont le nombre de champs est inferieur a 3<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;NF&lt;3&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les lignes n&rsquo;ayant qu&rsquo;un seul champ<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{if(NF == 1) {print}}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>tri de la 1\u00e8re colonne au 22eme caractere<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sort -k1.22<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Print si longueur de &lsquo;colonne 1&rsquo; &gt;3 &laquo;&nbsp;ET&nbsp;&raquo; ou &laquo;&nbsp;OU&nbsp;&raquo; longueur de &lsquo;colonne 2&rsquo; &lt;5<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;length($1)&gt;3 &amp;&amp; length($2)awk &lsquo;length($1)&gt;3 || length($2)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Condition de print sur la longueur de colonne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{if(length($1)<\/strong><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"background-color: #63f496; color: #000000; padding-bottom: 4pt; padding-top: 4pt; font-size: medium;\"><strong>@3-operations sur les lignes : occurrences &#8211; digits &#8211; suppression &#8211; doubles &#8211; printer<\/strong><\/h3>\n<\/li>\n<li><strong><strong><strong>Occurrences<br \/>\nCapturer la premiere occurrence d&rsquo;une serie de lignes ayant meme pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | sort -k1 | awk &lsquo;x !~ $1 ; {x = $1}&rsquo;<br \/>\ncat in.txt | sort -k1 | awk &lsquo;!d[$1] {print} {d[$1]=1}&rsquo;<br \/>\ncat in.txt | sort -k1 | awk &lsquo;x[$1]++ {next} {print}&rsquo;<br \/>\ncat in.txt | sort -k1 | awk &lsquo;!_[$1]++ {print $0 ; next} {next}&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Occurrences<br \/>\nCompter et marquer a la fin de la ligne les occurrences d&rsquo;un unique pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;\/pattern\/ {i=i+1} {print $0,i}&rsquo; in.txt | awk &lsquo;!a[NF]++ {print $0 ; next} {sub($NF,&nbsp;&raquo;&nbsp;&raquo;) ; print}&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Occurrences<br \/>\nCompter les occurrences d&rsquo;un pattern (total cumule)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;\/pattern\/ {n++} END {print &laquo;&nbsp;pattern ecrit&nbsp;&raquo; n &laquo;&nbsp;fois&nbsp;&raquo;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Occurrences<br \/>\nCompter les occurrences d&rsquo;un pattern (pour chaque ligne)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk -F &laquo;&nbsp;pattern&nbsp;&raquo; &lsquo;{print NF-1}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Occurrences<br \/>\nRemplace sur chaque ligne la 1\u00e8re occurrence de &lsquo;t&rsquo; par &lsquo;b&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;1,$ s\/t\/b\/1&rsquo; in.txt<br \/>\nwhile read line; do echo ${line\/t\/b}; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Occurrences<br \/>\nRemplacer la 2\u00e8me occurrence d&rsquo;un pattern de la premiere ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;0,\/old\/ s\/\/new\/2&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Occurrences<br \/>\nRemplacer la 2\u00e8me occurrence d&rsquo;un pattern pour chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;s\/old\/new\/2&rsquo; in.txt<br \/>\nsed &lsquo;\/old\/ s\/\/new\/2&rsquo; in.txt<br \/>\nawk &lsquo;{print gensub(\/old\/, &laquo;&nbsp;new&nbsp;&raquo;, 2)}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Occurrences<br \/>\nPrint la 1\u00e8re occurrence d&rsquo;un &laquo;&nbsp;pattern&nbsp;&raquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -m1 &laquo;&nbsp;pattern&nbsp;&raquo; in.txt<br \/>\nsed -n &lsquo;\/pattern\/{p;q;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Occurrences<br \/>\nPrinter les lignes dont les elements de la colonne 2 ont plus d&rsquo;une occurrence<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;FNR==NR &amp;&amp; a[$2]++ {b[$2] ; next} $2 in b&rsquo; in.txt in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Digits<br \/>\nPrinter les 4 premiers digits de chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | cut -c1-4<br \/>\nfor line in $(cat in.txt); do echo `expr &laquo;&nbsp;$line&nbsp;&raquo; : &lsquo;\\(&#8230;.\\)&rsquo;`; done<br \/>\nwhile read line; do echo `expr &laquo;&nbsp;$line&nbsp;&raquo; : &lsquo;\\(&#8230;.\\)&rsquo;`; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Digits<br \/>\nPrinter les 4 derniers digits de chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print substr($0, length($0)-3, length($0))}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Digits<br \/>\nDeleter les 3 derniers digits de chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;1,$ s\/&#8230;$\/\/p&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Digits<br \/>\nPrinter du 5\u00e8me digit au dernier de la ligne pour toutes les lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>while read line; do echo &laquo;&nbsp;substr($line,4)&nbsp;&raquo; | m4; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Digits<br \/>\nPrinter 6 digits \u00e0 partir du 2\u00e8me digit<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>while read line; do echo `expr substr &laquo;&nbsp;$line&nbsp;&raquo; 2 6`; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nSupprime de la ligne 4 a 7 (inclus) du fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;4,7d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nSupprime les lignes contenant &lsquo;toto&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/toto\/d&rsquo; in.txt<br \/>\ngrep -v &laquo;&nbsp;toto&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nSupprime &lsquo;toto&rsquo; de la ligne 2 a 6<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;2,6 s\/toto\/\/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nSupprime les lignes debutant par un chiffre (1 a 9)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;$1 ~ \/^[1-9]\/ {next} {print}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nSupprime la ligne debutant par &lsquo;@&rsquo; et les 2 suivantes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/^@\/ {N;N;d;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nSupprimer la 1ere ligne , la derniere ligne &#8230;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;1d&rsquo; in.txt &#8230;&#8230;&#8230;.. #supprime la premiere ligne<br \/>\nsed &lsquo;3d&rsquo; in.txt &#8230;&#8230;&#8230;.. #supprime la ligne 3<br \/>\nsed &lsquo;$d&rsquo; in.txt &#8230;&#8230;&#8230;.. #supprime la derniere ligne<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nSupprimer les lignes 1, 4, 7, 10&#8230;..<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;1~3d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nSupprimer 1 ligne toutes les 3 lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;0~3d&rsquo; in.txt<br \/>\nsed &lsquo;n;n;d;&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nDeleter les 2 dernieres lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;N;$!P;$!D;$d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression de lignes<br \/>\nDeleter les 10 dernieres lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e :a -e &lsquo;$d;N;2,10ba&rsquo; -e &lsquo;P;D&rsquo;<br \/>\nsed -n -e :a -e &lsquo;1,10!{P;N;D;};N;ba&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Lignes doubles<br \/>\nPrinter les lignes uniques sans les doubles<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sort -u in.txt<br \/>\nsort in.txt | uniq<br \/>\nawk &lsquo;!x[$0]++&rsquo; in.txt<br \/>\nawk &lsquo;{ a[$1]++ } END {for (i in a) print i}&rsquo; in.txt | sort<br \/>\nsed &lsquo;$!N; \/^\\(.*\\)\\n\\1$\/!P; D&rsquo; in.txt &#8230;&#8230;&#8230;consecutive lines<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Lignes doubles<br \/>\nPrinter les lignes doubles , deleter le reste<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | uniq -d<br \/>\nsed &lsquo;$!N; s\/^\\(.*\\)\\n\\1$\/\\1\/; t; D&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Lignes doubles<br \/>\nPrinter les lignes doubles (ou triples &#8230;)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;FNR==NR &amp;&amp; a[$0]++ {b[$0] ; next} $0 in b&rsquo; in.txt in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter uniquement la ligne 10<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &rsquo;10q;d&rsquo; in.txt<br \/>\nsed &rsquo;10!d&rsquo; in.txt<br \/>\nsed -n &rsquo;10p&rsquo; in.txt<br \/>\nawk &lsquo;{f[NR]=$0} END {print f[10]}&rsquo; in.txt<br \/>\nawk &lsquo;NR == 10 {print}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter de la ligne 1 a 10<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed 10q in.txt<br \/>\nawk &lsquo;NR &lt;=10{print}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter de la ligne 3 a 5<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;3,5!d&rsquo; in.txt<br \/>\nsed -n &lsquo;3,5p&rsquo; in.txt<br \/>\nawk &lsquo;NR &gt;= 3 &amp;&amp; NR &lt;= 5&rsquo; in.txt<br \/>\nhead -5 in.txt | tail -3<br \/>\nsed -n &lsquo;3{:a;N;5!ba;p}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter la ligne 5 et 10 d&rsquo;une serie de fichiers<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>for i in fichiers*;do awk &lsquo;NR == 5;NR == 10 {print $0}&rsquo; $i;done<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter de la ligne 5 a 10 en numerotant<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;NR == 5,NR == 10 {print NR&nbsp;&raquo; &nbsp;&raquo; $0}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter la 1ere ligne \u00e0 la place de la 3eme ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n -e &lsquo;1h; 1!p; 3{g;p}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter la 1ere ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed q in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter la derni\u00e8re ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;$p&rsquo; in.txt<br \/>\nsed &lsquo;$!d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter les 2 dernieres lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;$!N;$!D&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter les 10 dernieres lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e :a -e &lsquo;$q;N;11,$D;ba&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter la 1ere et derniere ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>head -1 in.txt ; tail -1 in.txt<br \/>\nsed -n &lsquo;1p ; $p&rsquo; in.txt<br \/>\nawk &lsquo;NR==1 ; END {print}&rsquo; in.txt<br \/>\nsed q in.txt;sed &lsquo;$!d&rsquo; in.txt<br \/>\nsed q in.txt;sed &lsquo;$\\!d&rsquo; in.txt &#8230;&#8230;&#8230;.#selon version de Linux<br \/>\nIFS=$&rsquo;\\n&rsquo;;array=($(cat in.txt)); echo ${array[0]};sed &lsquo;$!d&rsquo; in.txt &#8230;&#8230;..#en sous shell<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter les lignes ayant moins de 6 caracteres<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/^.\\{6,\\}\/d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer des lignes<br \/>\nPrinter les lignes de 6 caracteres ou plus<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/^.\\{6\\}\/p&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Indexage du premier &lsquo;t&rsquo; lu pour chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>while read line; do echo `expr index &laquo;&nbsp;$line&nbsp;&raquo; t`; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Longueur de chaque ligne (en nombre de digits) &#8211; voir si la version de Linux supporte : &lsquo; m4 &lsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>while read line; do echo &laquo;&nbsp;len($line)&nbsp;&raquo; | m4; done &lt; in.txt<br \/>\nwhile read line; do echo `expr length &laquo;&nbsp;$line&nbsp;&raquo;`; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Formater sur une meme ligne : une ligne paire a droite d&rsquo;une ligne impaire<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | sed &laquo;&nbsp;N;s\/\\(.*\\)\\n\\(.*\\)\/\\1 \\2\/&nbsp;&raquo;<br \/>\ncat in.txt | sed &laquo;&nbsp;N;s\/\\n\/ \/&nbsp;&raquo;<br \/>\ncat in.txt | sed &lsquo;$ !N; s\/\\n\/ \/&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Formater sur une meme ligne : une ligne impaire a droite d&rsquo;une ligne paire<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | sed &laquo;&nbsp;N;s\/\\(.*\\)\\n\\(.*\\)\/\\2 \\1\/&nbsp;&raquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Affiche 1 ligne sur 2 (lignes 1, 3, 5&#8230;)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;n;d&rsquo; in.txt<br \/>\nsed -n &lsquo;p;n&rsquo; in.txt<br \/>\nsed -n &lsquo;1,${p;n;}&rsquo; in.txt<br \/>\nsed &lsquo;2~2d&rsquo; in.txt<br \/>\nawk &lsquo;FNR % 2&rsquo; in.txt<br \/>\nawk &lsquo;NR%2 {print}&rsquo; in.txt<br \/>\nawk &lsquo;NR%2 == 1&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Affiche 1 ligne sur 2 (lignes 2, 4, 6&#8230;)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;n;p&rsquo; in.txt<br \/>\nsed -n &lsquo;1,${n;p;}&rsquo; in.txt<br \/>\nsed &lsquo;1~2d&rsquo; in.txt<br \/>\nawk &lsquo;!(FNR % 2)&rsquo; in.txt<br \/>\nawk &lsquo;(NR+1)%2 {print}&rsquo; in.txt<br \/>\nawk &lsquo;NR%2 == 0&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Affiche 1 ligne sur 5 a partir de la ligne 3<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;3,${p;n;n;n;n;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Recherche de la ligne la plus longue<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{ if ( length &gt; L ) { L=length ; s=$0 } } END { print L,&nbsp;&raquo;\\&nbsp;&raquo;&nbsp;&raquo;s&nbsp;&raquo;\\&nbsp;&raquo;&nbsp;&raquo;}&rsquo; in.txt<\/strong><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"background-color: #63f496; color: #000000; padding-bottom: 4pt; padding-top: 4pt; font-size: medium;\"><strong>@4-pattern<\/strong><\/h3>\n<\/li>\n<li><strong><strong><strong>Capture d&rsquo;un pattern dans 1 fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep &lsquo;pattern&rsquo; in.txt<br \/>\ngrep -w &lsquo;pattern&rsquo; in.txt<br \/>\nawk &lsquo;\/pattern\/&rsquo; in.txt<br \/>\nawk &lsquo;$0 ~ \/\\ypattern\\y\/ {print}&rsquo; in.txt<br \/>\nsed -n &lsquo;\/pattern\/p&rsquo; in.txt<br \/>\nsed &lsquo;\/pattern\/ !d&rsquo; in.txt<br \/>\ngrep &lsquo;\\&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les lignes ne contenant que des chiffres<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/^[[:digit:]]*$\/p&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les lignes ne contenant que des lettres<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/^[[:alpha:]]*$\/p&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Capture d&rsquo;un pattern dans plusieurs fichiers<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep &laquo;&nbsp;pattern&nbsp;&raquo; in*.txt<br \/>\nfor i in in*.txt;do seq=`ls $i`;awk &lsquo;\/pattern\/ {print seq,$0}&rsquo; seq=${seq} $i;done<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer un paragraphe separe par des lignes blanches , contenant un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/.\/{H;$!d;}&rsquo; -e &lsquo;x;\/pattern\/!d;&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer un paragraphe separe par des lignes blanches , contenant pattern1 &lsquo;et&rsquo; pattern2<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/.\/{H;$!d;}&rsquo; -e &lsquo;x;\/pattern1\/!d;\/pattern2\/!d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer un paragraphe separe par des lignes blanches , contenant pattern1 &lsquo;ou&rsquo; pattern2<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/.\/{H;$!d;}&rsquo; -e &lsquo;x;\/pattern1\/b&rsquo; -e &lsquo;\/pattern2\/b&rsquo; -e d in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Capturer dans la colonne 1 le pattern &lsquo;2&rsquo; et printer la colonne 3<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;$1 ~ \/2\/ {print $3}&rsquo; in.txt<br \/>\nawk &lsquo;$1 == &laquo;&nbsp;2&nbsp;&raquo; {print $3}&rsquo; in.txt<br \/>\nawk &lsquo;{if($1 ~ \/t\/){gsub(\/t\/, &laquo;&nbsp;z&nbsp;&raquo;,$1);print $0}}&rsquo; in.txt<br \/>\nawk &lsquo;$1 !~ \/2\/ {print $3}&rsquo; in.txt &#8230;&#8230;&#8230;.. #syntaxe inverse<br \/>\nawk &lsquo;$1 \\!~ \/2\/ {print $3}&rsquo; in.txt &#8230;&#8230;&#8230;..#syntaxe inverse (selon version Linux)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer les lignes contenant des patterns<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;$1 !~ \/pattern1\/ &amp;&amp; $2 !~ \/pattern2\/ &lsquo; in.txt<br \/>\nawk &lsquo;$1 ~ \/pattern1\/ || $2 ~ \/pattern2\/ {next} {print}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Capturer le caract\u00e8re # \u00e0 la 4\u00e8me position<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>egrep &lsquo;^.{3}#&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Capturer les lignes ayant 4 chiffres ou plus<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep &laquo;&nbsp;[0-9]\\{4\\}&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Lire plusieurs patterns &#8211; (possibilite de lignes doubles)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;\/pattern1\/ {print $0} \/pattern2\/ {print $0}&rsquo; in.txt<br \/>\nawk &lsquo;FNR==NR &amp;&amp; a[$0]=\/^t\/ || a[$0]=\/^d\/ {b[$0] ; next} $0 in b&rsquo; in.txt in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>utiliser &lsquo;egrep&rsquo; si le pattern a plusieurs lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>egrep -a &laquo;&nbsp;MIN WORD 2|MIN WORD32&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>ajouter antislash (\\) pour le caract\u00e8re special: |<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>egrep &laquo;&nbsp;3 \\|DISK|4 \\| DISK&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Lire plusieurs patterns &#8211; (sans lignes doubles) (ici lignes contenant a &lsquo;ou&rsquo; b)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/[ab]\/!d&rsquo; in.txt<br \/>\nsed &lsquo;\/[ab]\/\\!d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Lire plusieurs patterns &#8211; (ici lignes contenant a &lsquo;et&rsquo; b)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/a\/!d; \/b\/!d&rsquo; in.txt<br \/>\nsed &lsquo;\/a\/\\!d; \/b\/\\!d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les 2 premieres occurrences du pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -m2 &laquo;&nbsp;tata&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Substitution uniquement pour la 1ere occurrence<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;0,\/tata\/ s\/\/zaza\/&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplace &lsquo;old&rsquo; par &lsquo;new&rsquo; uniquement sur les lignes commencant par %%<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/^%%\/ s\/old\/new\/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplace sur chaque ligne du d\u00e9but de la ligne au signe &lsquo;=&rsquo; par &lsquo;new&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;1,$ s\/^.*=\/new\/&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer la ligne contenant &lsquo;toto&rsquo; entre &lsquo;titi&rsquo; et &lsquo;tutu&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/titi\/,\/tutu\/ {\/toto\/d}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Capture entre &lsquo;toto&rsquo; et &lsquo;tata&rsquo; (attention si plusieurs occurrences du pattern)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/toto\/,\/tata\/p&rsquo; in.txt<br \/>\nsed -e &lsquo;\/toto\/,\/tata\/ !{\/.\/d}&rsquo; in.txt<br \/>\nsed -e &lsquo;\/toto\/,\/tata\/ \\!{\/.\/d}&rsquo; in.txt<br \/>\nperl -e &laquo;&nbsp;while() {print if\/toto\/&#8230;\/tata\/}&nbsp;&raquo; in.txt<br \/>\nawk &laquo;&nbsp;\/toto\/,\/tata\/&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer entre &lsquo;pattern1&rsquo; et &lsquo;pattern2&rsquo; (les patterns inclus)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/pattern1\/,\/pattern2\/d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Substitution entre 2 patterns<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/titi\/,\/tata\/ s\/toto\/zz\/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Definir un pattern sur lequel la substitution ne se fera pas<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/toto\/!s\/t\/z\/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer entre &lsquo;titi&rsquo; et &lsquo;tutu&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/titi\/{:a;N;\/tutu\/!ba;p;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Capture de &lsquo;titi&rsquo; a &lsquo;tutu&rsquo; de la ligne 3 a 10<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;3,10{\/titi\/,\/tutu\/p}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer une ligne contenant un pattern + les 2 lignes suivantes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/pattern\/,+2d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer de la ligne 3 a la ligne contenant &lsquo;pattern&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;3,\/pattern\/d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer d&rsquo;une ligne contenant 1 pattern jusqu&rsquo;a la fin<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/pattern\/,$p&rsquo; in.txt<br \/>\nsed -n &lsquo;\/pattern\/,EOF&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Si le pattern est une variable<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/&rsquo;$var&rsquo;\/p&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Ne pas selectionner les lignes contenant un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -v &laquo;&nbsp;pattern&nbsp;&raquo; in.txt<br \/>\nawk &lsquo;!\/pattern\/&rsquo; in.txt<br \/>\nsed &lsquo;\/pattern\/d&rsquo; in.txt<br \/>\nsed -n &lsquo;\/pattern\/!p&rsquo; in.txt<br \/>\nawk &lsquo;$0 ~ \/pattern\/ {next} {print}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>A un pattern inserer une ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/pattern\/ i\\ligne ecrite avant le pattern&rsquo; in.txt &#8230;&#8230;&#8230;&#8230; (option &lsquo;i&rsquo; : avant le pattern)<br \/>\nsed -e &lsquo;\/pattern\/ a\\ligne ecrite apres le pattern&rsquo; in.txt &#8230;&#8230;&#8230;&#8230; (option &lsquo;a&rsquo; : apres le pattern)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>A un pattern inserer une ligne blanche<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/pattern\/ i\\ &lsquo; in.txt &#8230;&#8230;&#8230;&#8230; (option &lsquo;i&rsquo; : avant le pattern)<br \/>\nsed -e &lsquo;\/pattern\/ a\\ &lsquo; in.txt &#8230;&#8230;&#8230;&#8230; (option &lsquo;a&rsquo; : apres le pattern)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>print le pattern sans distinguer majuscules ou minuscules<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -i &laquo;&nbsp;pattern&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>print 2 lignes apr\u00e8s un pattern ( dans la colonne 1 )<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;\/^pattern\/ {c=2; next} c&#8211;&gt;0&rsquo; in.txt<br \/>\nawk &lsquo;BEGIN {counter=0}; $1==&nbsp;&raquo;pattern&nbsp;&raquo; {counter=2; next}; counter&gt;0 {counter&#8211;; print}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>print le pattern + 2 lignes apr\u00e8s (After)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -A2 &laquo;&nbsp;pattern&nbsp;&raquo; in.txt<br \/>\nsed -n &lsquo;\/pattern\/ {N;N;p;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>delete le pattern + 2 lignes apr\u00e8s<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/pattern\/ {N;N;d;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>print le pattern + 2 lignes avant (Before)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -B2 &laquo;&nbsp;pattern&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>selectionner tous les caracteres (sans afficher les lignes blanches)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep &laquo;&nbsp;.&nbsp;&raquo; in.txt<br \/>\nawk &laquo;&nbsp;\/.\/&nbsp;&raquo; in.txt<br \/>\nsed -n &lsquo;\/.\/ {p;d}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>combiner motif et ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;8,\/fin\/ s\/toto\/titi\/g&rsquo; in.txt<br \/>\nsed &lsquo;\/debut\/,$ s\/toto\/titi\/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>substituer tout un texte entre 2 motifs excluant les motifs<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/titi\/,\/tutu\/{\/titi\/b;\/tutu\/b;s\/.*\/SED\/;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>ne pas printer les lignes contenant &lsquo;tata&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/tata\/d&rsquo; in.txt<br \/>\nsed -n &lsquo;\/tata\/!p&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les lignes precedant un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/tata\/{g;1!p;};h&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les lignes suivant un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/tata\/{n;p;}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remembering a pattern (&lsquo;_&rsquo; is delimiter)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo &laquo;&nbsp;a line1&nbsp;&raquo; | sed &lsquo;s_\\([a-z]\\)\\([ ]\\)\\([a-z]*\\)\\([0-9]\\)_\\1\\2\\3 \\4_&rsquo;<br \/>\n(result: a line 1)<\/strong><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"background-color: #63f496; color: #000000; padding-bottom: 4pt; padding-top: 4pt; font-size: medium;\"><strong>@5-Remplacer des lignes des chiffres ou des lettres<\/strong><\/h3>\n<\/li>\n<li><strong><strong><strong>Exemple d&rsquo;une suite d&rsquo;actions entre 2 patterns<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;4,10 {\/pattern1\/,\/pattern2\/ {s\/^0.\/y&amp;\/;\/^$\/d;s\/m\/w\/g;p}}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer tous les chiffres en gardant un tiret &lsquo;-&lsquo; a la place<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>tr -d 0-9 &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>supprimer toutes les lettres en gardant un tiret &lsquo;-&lsquo; a la place<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>tr -d [a-zA-Z] &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Conserver les lignes contenant des chiffres<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/[0-9]\/!d&rsquo; in.txt<br \/>\nsed -e &lsquo;\/[0-9]\/\\!d&rsquo; in.txt &#8230;&#8230;&#8230;.. (selon version Unix)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer les lettres minuscules en fin de ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{ sub(&laquo;&nbsp;[a-z]*$&nbsp;&raquo;, &laquo;&nbsp;&nbsp;&raquo;); print }&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplacer les lettres par une operande (ici: +)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | tr &lsquo;[:alpha:]&rsquo; +<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplacer les chiffres par une operande (ici: +)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | tr &lsquo;[:digit:]&rsquo; +<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplacer 1 caractere par un autre<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>tr &laquo;&nbsp;t&nbsp;&raquo; &laquo;&nbsp;z&nbsp;&raquo; &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression des sauts de lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>tr &lsquo;\\n&rsquo; &lsquo; &lsquo; &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer la r\u00e9p\u00e9tition de caract\u00e8res<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo &laquo;&nbsp;boonnjoouuur&nbsp;&raquo; | tr -s &laquo;&nbsp;onu&nbsp;&raquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplace le bloc (&lsquo;t&rsquo; suivi de 2 caracteres) par zorro en ligne 4<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;4s\/t..\/zorro\/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer 1 caractere (1 point=1 caractere)<br \/>\n( ici l&rsquo;insertion de &lsquo;Q&rsquo; se fera apres les 2 premiers caract\u00e8res )<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo &lsquo;abcdef&rsquo; | sed &lsquo;s\/^..\/&amp;Q\/&rsquo; &#8230;&#8230;&#8230;.. #resultat : abQcdef<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplacer en debut de chaine un nombre de points par une lettre<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo &lsquo;abcdef&rsquo; | sed &lsquo;s\/^..\/Q\/&rsquo; &#8230;&#8230;&#8230;.. #resultat : Qcdef<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Uniquement le 2eme caractere &lsquo;t&rsquo; est remplace par &lsquo;z&rsquo; en ligne 4<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;4s\/t\/z\/2&rsquo; in.txt<br \/>\nawk &lsquo;NR==4 {print gensub(\/t\/,&nbsp;&raquo;z&nbsp;&raquo;,2)}; NR!=4 {print}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplace &lsquo;t&rsquo; par &lsquo;k&rsquo; , et &lsquo;o&rsquo; par &lsquo;l&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;y\/to\/kl\/&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Effectue le remplacement des lignes 4 a 10 et n&rsquo;ecrit dans &lsquo;out.txt&rsquo; que celles modifiees<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;4,10 s\/t\/&amp;zorro\/gw out.txt&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplacer un pattern (&lsquo;titi&rsquo; remplace par: &lsquo;titi et tata&rsquo;)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/titi\/ s\/\/&amp; et tata\/g&rsquo; in.txt<br \/>\nsed &lsquo;s\/titi\/titi et tata\/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>tr : remplacement dans un sous shell (taper: sh)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>a=abcdef; echo $a | tr f g &#8230;&#8230;&#8230;.. #resultat : abcdeg<br \/>\na=abcdef; echo ${a\/\/f\/g} &#8230;&#8230;&#8230;.. #resultat : abcdeg<br \/>\na=abcdef; echo $a | tr [ac] [xz] &#8230;&#8230;&#8230;.. #resultat : xbzdef<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>tr + option -d: effacement (utiliser un sous shell) (taper: sh)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>a=abcdef; echo $a | tr -d f &#8230;&#8230;&#8230;.. #resultat : abcde<br \/>\na=abcdef; echo ${a\/\/f\/} &#8230;&#8230;&#8230;.. #resultat : abcde<br \/>\na=abcdef; echo $a | tr -d [a-c] &#8230;&#8230;&#8230;.. #resultat : def<br \/>\na=abcdef; echo ${a\/\/[a-c]\/} &#8230;&#8230;&#8230;.. #resultat : def<br \/>\na=abcdef; echo $a | tr -d [ac] &#8230;&#8230;&#8230;.. #resultat : bdef<br \/>\na=abcdef; echo ${a\/\/[ac]\/} &#8230;&#8230;&#8230;.. #resultat : bdef<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>tr + option -c: inverse l&rsquo;ensemble des caract\u00e8res a detecter<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo &laquo;&nbsp;acfdeb123&nbsp;&raquo; | tr -c b-d + &#8230;&#8230;. resultat: +c+d+b++++<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplacer toutes les occurrences d&rsquo;un caract\u00e8re ou d&rsquo;un pattern pour chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>var=&nbsp;&raquo;newpattern&nbsp;&raquo; ; awk &lsquo;{gsub( \/oldpattern\/, &laquo;&nbsp;&lsquo;&nbsp;&raquo;$var&nbsp;&raquo;&lsquo;&nbsp;&raquo; )};1&rsquo; in.txt<br \/>\nvar=&nbsp;&raquo;newpattern&nbsp;&raquo; ; awk -v v=&nbsp;&raquo;$var&nbsp;&raquo; &lsquo;{gsub( \/oldpattern\/, v )}1&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplacer la 2eme occurrence d&rsquo;un caract\u00e8re ou d&rsquo;un pattern pour chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{print gensub(\/old\/, &laquo;&nbsp;new&nbsp;&raquo;, 2) }&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplacer &lsquo;o&rsquo; par &lsquo;zorro&rsquo; sauf pour le pattern &lsquo;toto&rsquo; ,<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/toto\/!s\/o\/zorro\/&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer les 3 derniers caract\u00e8res de la derni\u00e8re ligne uniquement<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>expr &laquo;&nbsp;$(cat in.txt)&nbsp;&raquo; : &laquo;&nbsp;\\(.*\\)&#8230;$&nbsp;&raquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer les 3 derniers caract\u00e8res de chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;sub( &laquo;&nbsp;&#8230;$&nbsp;&raquo;, &laquo;&nbsp;&nbsp;&raquo; )&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les 5 premiers caract\u00e8res de la premiere ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo `cat in.txt`| cut -c1-5<br \/>\necho `expr &laquo;&nbsp;$(cat in.txt)&nbsp;&raquo; : &lsquo;\\(&#8230;..\\)&rsquo;`<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les 5 premiers caract\u00e8res de toutes les lignes d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | cut -c1-5<br \/>\nwhile read line;do echo ${line::5};done &lt; in.txt<br \/>\nwhile read line ; do echo $line | cut -c1-5 ; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les 5 derniers caracteres de toutes les lignes d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>while read line;do echo ${line: -5};done &lt; in.txt<br \/>\nsed &lsquo;s\/^.*\\(&#8230;..\\)$\/\\1\/&rsquo; in.txt<br \/>\nsed &lsquo;s\/\\(.*\\)\\(.\\{5\\}\\)\/\\2\/&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Substituer toto ou titi par tata<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;s\/toto\\|titi\/tata\/g&rsquo; in.txt<\/strong><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"background-color: #63f496; color: #000000; padding-bottom: 4pt; padding-top: 4pt; font-size: medium;\"><strong>@6-Supprimer des lignes blanches ,espaces ,tabulations<\/strong><\/h3>\n<\/li>\n<li><strong><strong><strong>Supprimer les lignes blanches (l&rsquo;option &lsquo;-i&rsquo; reecrit directement dans le fichier)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/.\/!d&rsquo; in.txt<br \/>\nsed -i &lsquo;\/^$\/d&rsquo; in.txt &#8230;&#8230;&#8230;.. (l&rsquo;option &lsquo;-i&rsquo; est a manier avec precaution)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer les lignes blanches repetees sauf la 1ere<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat -s in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer uniquement les lignes blanches du debut du fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/.\/,$!d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer tout ce qui suit la 1ere ligne blanche<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/^$\/q&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer tout ce qui precede la 1ere ligne blanche<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;1,\/^$\/d&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer les lignes blanches entre &lsquo;tata&rsquo; et &lsquo;route&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/tata\/,\/route\/ {\/^$\/d}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Remplacer 2 blancs (ou +) par 1 seul blanc<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;s\/\\ \\ *\/\\ \/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression des espaces et tabulations en debut et fin de ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;s\/^[ \\t]*\/\/;s\/[ \\t]*$\/\/&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Suppression des lignes vides<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>grep -v &lsquo;^$&rsquo; in.txt<br \/>\ngrep &lsquo;.&rsquo; in.txt<br \/>\nsed -n &lsquo;\/^$\/!p&rsquo; in.txt<br \/>\nawk NF in.txt<br \/>\nawk &lsquo;\/.\/&rsquo; in.txt<br \/>\nsed &lsquo;\/^$\/d&rsquo; in.txt<br \/>\nsed &lsquo;\/.\/!d&rsquo; in.txt<br \/>\nawk &lsquo;\/^$\/ {next} {print}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>tr + option squeeze-repeats: efface tout sauf la premi\u00e8re<br \/>\noccurence d&rsquo;une cha\u00eene de caract\u00e8res<br \/>\n(utile pour supprimer plusieurs espaces blancs)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo &laquo;&nbsp;XXXXX&nbsp;&raquo; | tr &#8211;squeeze-repeats &lsquo;X&rsquo; &#8230;&#8230;. resultat: X<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprime tous les espaces au d\u00e9but de toutes les lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;s\/^ *\/\/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprime tous les espaces \u00e0 la fin de toutes les lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;s\/ *$\/\/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Supprimer seulement la premi\u00e8re ligne de chaque ensemble de lignes vides consecutives<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/[0-9A-Za-z]\/,\/^$\/{\/^$\/d}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>to join lines ( en deletant les lignes blanches )<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/.\/!d&rsquo; -e &lsquo;$!N;s\/\\n\/ \/&rsquo; in.txt<br \/>\nsed -e &lsquo;\/.\/\\!d&rsquo; -e &lsquo;$\\!N;s\/\\n\/ \/&rsquo; in.txt<br \/>\ngrep &laquo;&nbsp;.&nbsp;&raquo; in.txt | sed &lsquo;$\\!N;s\/\\n\/ \/&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>to join lines ( en gardant les lignes blanches )<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/.\/!b&rsquo; -e &lsquo;$!N;s\/\\n\/ \/&rsquo; in.txt<br \/>\nsed -e &lsquo;\/.\/\\!b&rsquo; -e &lsquo;$\\!N;s\/\\n\/ \/&rsquo; in.txt<br \/>\ngrep &laquo;&nbsp;.&nbsp;&raquo; in.txt | sed &lsquo;$\\!N;s\/\\n\/ \/&rsquo; | sed G<\/strong><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"background-color: #63f496; color: #000000; padding-bottom: 4pt; padding-top: 4pt; font-size: medium;\"><strong>@7-Inserer<\/strong><\/h3>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne blanche apres chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed G in.txt<br \/>\nsed &lsquo;a\\ &lsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne de tirets toutes les 2 lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;n;a\\&#8212;&#8212;&#8212;-&lsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne blanche toutes les 3 lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;n;n;G;&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne blanche apres chaque ligne sauf apres la ligne 3<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;3!G&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne au debut, \u00e0 la 3eme ligne et \u00e0 la fin du fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;1i \\debut\\ du\\ traitement&rsquo; in.txt<br \/>\nsed -e &lsquo;3i \\ajout\\ a\\ la\\ 3eme\\ ligne&rsquo; in.txt<br \/>\nawk &lsquo;NR == 3 {print &laquo;&nbsp;line3&nbsp;&raquo;}1&rsquo; in.txt<br \/>\nsed -e &lsquo;$a \\fin\\ du\\ traitement&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne \u00e0 un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/pattern\/ i\\ligne ecrite avant le pattern&rsquo; in.txt &#8230;&#8230;&#8230;&#8230; (option &lsquo;i&rsquo; : avant le pattern)<br \/>\nsed -e &lsquo;\/pattern\/ a\\ligne ecrite apres le pattern&rsquo; in.txt &#8230;&#8230;&#8230;&#8230; (option &lsquo;a&rsquo; : apres le pattern)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne blanche \u00e0 un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/pattern\/ i\\ &lsquo; in.txt &#8230;&#8230;&#8230;&#8230; (option &lsquo;i&rsquo; : avant le pattern)<br \/>\nsed -e &lsquo;\/pattern\/ a\\ &lsquo; in.txt &#8230;&#8230;&#8230;&#8230; (option &lsquo;a&rsquo; : apres le pattern)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Changer la ligne si elle contient un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/pattern\/ c\\new line&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer **DELETED** et supprimer les lignes entre 2 patterns<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/pattern1\/,\/pattern2\/ c\\**DELETED**&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer la ligne &lsquo;line before&rsquo; avant chaque ligne du fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;i\\line before&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer du texte avant une ligne match\u00e9e par un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;\/pattern\/ i\\line before pattern&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne blanche avant une ligne match\u00e9e par un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/tata\/{x;p;x}&rsquo; in.txt<br \/>\nsed -e &lsquo;\/pattern\/ i\\ &lsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne blanche apr\u00e8s une ligne match\u00e9e par un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/tata\/G&rsquo; in.txt<br \/>\nsed -e &lsquo;\/pattern\/ a\\ &lsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer une ligne blanche avant et apres une ligne matchee par un pattern<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/tata\/{x;p;x;G}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer un fichier &lsquo;temp.txt&rsquo;<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;1r temp.txt&rsquo; &lt; in.txt &#8230;&#8230;&#8230;.apr\u00e8s la 1\u00e8re ligne de &lsquo;in.txt&rsquo;<br \/>\nsed &lsquo;\/pattern\/ r temp.txt&rsquo; &lt; in.txt &#8230;&#8230;&#8230;apres le pattern<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer un &lsquo;blanc&rsquo; devant toutes les lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;s\/^.\/ &amp;\/g&rsquo; in.txt<br \/>\nsed &lsquo;{s_^_ _}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer un &lsquo;blanc&rsquo; \u00e0 toutes les fins de lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;s\/.$\/&amp; \/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer un &lsquo;blanc&rsquo; apres tous les &lsquo;t&rsquo; (a droite) en ligne 4<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e &lsquo;4s\/t\/&amp; \/g&rsquo; in.txt<br \/>\nsed -e &lsquo;4\\!s\/t\/&amp; \/g&rsquo; in.txt &#8230;&#8230;&#8230;.. #syntaxe inverse<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer au 5\u00e8me caract\u00e8re apr\u00e8s 3 caract\u00e8res le signe # sur la ligne 2<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -r &laquo;&nbsp;2 ~ s\/^(.{4})(.{3})\/\\2#\/&nbsp;&raquo; in.txt<\/strong><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"background-color: #63f496; color: #000000; padding-bottom: 4pt; padding-top: 4pt; font-size: medium;\"><strong>@8-divers<\/strong><\/h3>\n<\/li>\n<li><strong><strong><strong>Printer un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt<br \/>\nsed &nbsp;&raquo; in.txt<br \/>\nsed &lsquo;:&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Dupliquer toutes les lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;p&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>printer 3 fois chaque ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;{h;p;p}&rsquo; in.txt<br \/>\nwhile read line;do for i in `seq 1 3`;do echo $line;done;done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inverser l&rsquo;ordre d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>tac in.txt<br \/>\nsed -n &lsquo;1!G;h;$p&rsquo; in.txt<br \/>\nawk &lsquo;{ a[i++]=$0 } END { for (j=i-1; j&gt;=0; ) print a[j&#8211;] }&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Ecrire 1 mot par ligne (pour 5 mots: -n5)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | xargs -n1<br \/>\nawk &lsquo;{i=1; while (i&lt;=NF){print $i, &nbsp;&raquo; &laquo;&nbsp;;i++}}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Ecrire un caract\u00e8re par ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>while read line; do echo -n &laquo;&nbsp;$line&nbsp;&raquo; | dd cbs=1 conv=unblock 2&gt;\/dev\/null; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Ecrire un fichier sur une ligne<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;{:a;$!N;s_\\n_ _;ta}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Joindre les lignes paires a la suite des lignes impaires<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;$!N; s\/\\n\/ \/g&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Transforme les lignes en colonnes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{printf &laquo;&nbsp;ligne%d: %s &laquo;&nbsp;,NR,$0&gt;&nbsp;&raquo;z-cible&nbsp;&raquo;}&rsquo; z-source<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Ajouter en prefixe le nombre d&rsquo;occurences des mots et trier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cat in.txt | xargs -n1 | sort | uniq -c | sort -nr<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Print les 10 premiers (ou derniers) caracteres d&rsquo;un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>head -10c in.txt &#8230;&#8230;&#8230;.. #les 10 premiers<br \/>\ntail -10c in.txt &#8230;&#8230;&#8230;.. #les 10 derniers<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Decoupe en n caracteres le fichier &lsquo;in.txt&rsquo; (ici n=10)<br \/>\ncreation de fichiers: prefixe_outaa (outab..outac&#8230;)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>split -b 10 in.txt prefixe_out<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Decoupe en n lignes le fichier &lsquo;in.txt&rsquo; (ici n=5)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>creation de fichiers: prefixe_outaa (outab..outac&#8230;)<br \/>\nsplit -l 5 in.txt prefix_out<br \/>\nawk &lsquo;{print &gt;(&laquo;&nbsp;prefix_out&nbsp;&raquo; int((NR+4)\/5))}&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Trier un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>dans un ordre numerique (-n); avec separateur (-t); colonne (-k); et place du caractere (.)<br \/>\ncat in.txt | sort -n -t&nbsp;&raquo; &nbsp;&raquo; -k2.4<br \/>\ndans un ordre decroissant (-r) et en retirant les doubles (-u) :<br \/>\ncat in.txt | sort -r -u<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Copier un fichier<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>cp old_file new_file<br \/>\nsed &lsquo;w new_file&rsquo; old_file<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Definir un marqueur en fin de ligne (ici ,) qui joindra la ligne suivante<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed &lsquo;\/\\,$\/ {N; s_\\,\\n_ _}&rsquo; in.txt<br \/>\nsed -e :a -e &lsquo;\/\\,$\/N; s_\\,\\n_ _; ta&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Si 1 ligne se termine par &lsquo;,&rsquo; joindre la suivante a elle<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e :a -e &lsquo;\/,$\/N ; s#\\n## ; ta&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Si 1 ligne commence par un signe egale &lsquo;=&rsquo; , l&rsquo;ajouter a la ligne precedente et remplacer le signe egale &lsquo;=&rsquo; par un espace<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -e :a -e &lsquo;$!N;s\/\\n=\/ \/;ta&rsquo; -e &lsquo;P;D&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>&laquo;&nbsp;Dispach&nbsp;&raquo; (inverse du &laquo;&nbsp;regroupe&nbsp;&raquo;)<br \/>\nsplit en couples: [&lsquo;colonne 1&rsquo;-&lsquo;parties[k]&rsquo;]<br \/>\nen &lsquo;k&rsquo; fois nombre de lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{key=$1;$1=&nbsp;&raquo;&nbsp;&raquo;;n=split($0, parties, &laquo;&nbsp;[,]&nbsp;&raquo;);for(k=1; k0) print $0}&rsquo; | awk &lsquo;{if($1 != key){key = $1} else {$2 += cum} cum=$2; print}&rsquo; &gt; out.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>&laquo;&nbsp;Regroupe&nbsp;&raquo; (inverse du &laquo;&nbsp;dispach&nbsp;&raquo;)<br \/>\n(tous les elements semblables de la colonne 1<br \/>\nsont regroupes sur 1 seule ligne)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>awk &lsquo;{key=$1; $1=$2=&nbsp;&raquo;&nbsp;&raquo;;f[key]=f[key] s[key] $0;s[key]=&nbsp;&raquo;,&nbsp;&raquo;} END {for(key in f){gsub(\/[[:space:]]\/,&nbsp;&raquo;&nbsp;&raquo;,f[key]);printf &laquo;&nbsp;%s %s\\n&nbsp;&raquo;,key,f[key]}}&rsquo; in.txt| sort &gt; out.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Encadre le premier nombre de la ligne avec des ** , ne printer que ces lignes<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &laquo;&nbsp;s\/\\([0-9][0-9]*\\)\/**\\1**\/p&nbsp;&raquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Printer les lignes avec 3 digits consecutifs<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>sed -n &lsquo;\/[0-9]\\{3\\}\/p&rsquo; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Inserer un espace entre chaque lettre<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo -e &laquo;&nbsp;bonjour&nbsp;&raquo;|sed &lsquo;s\/.\/&amp; \/g&rsquo; &#8230;&#8230;&#8230;&#8230;&#8230;.resultat: b o n j o u r<br \/>\necho -e &laquo;&nbsp;bonjour&nbsp;&raquo;|sed -r &lsquo;s\/([^ ])\/\\1 \/g&rsquo;<br \/>\necho -e &laquo;&nbsp;bonjour&nbsp;&raquo;|sed &lsquo;s\/\\([^ ]\\)\/\\1 \/g&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Mettre en majuscule la 1\u00e8re lettre d&rsquo;une phrase<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo -e &laquo;&nbsp;texte ligne1\\ntexte ligne2&nbsp;&raquo; | sed &lsquo;s\/^.\/\\u&amp;\/&rsquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>dirname &#8230;&#8230;&#8230;&#8230;(en sous shell)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>var=&nbsp;&raquo;\/home\/Bureau\/1\/in.txt&nbsp;&raquo; &#8230;&#8230;. (en sous shell)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>dirname $var &#8230;&#8230;&#8230;.. &#8212;-&gt; \/home\/Bureau\/1<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo ${var%\/*} &#8230;&#8230;&#8230;.. &#8212;-&gt; \/home\/Bureau\/1<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>basename &#8230;&#8230;. (en sous shell)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>basename $var &#8230;&#8230;&#8230;.. &#8212;-&gt; in.txt<br \/>\necho ${var##*\/} &#8230;&#8230;&#8230;.. &#8212;-&gt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>while dans un sous shell (taper: sh)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>while read line; do echo -en &laquo;&nbsp;$line\\n&nbsp;&raquo;; done &lt; in.txt<br \/>\nwhile read line; do echo -e $line; done &lt; in.txt<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>&lsquo;set&rsquo; decoupe 1 variable en parametres positionnels dans un sous shell (taper: sh)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>string=&nbsp;&raquo;a b:c def:g&nbsp;&raquo;; IFS=&rsquo;:&rsquo;; set $string; echo &laquo;&nbsp;$1&nbsp;&raquo;<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>read &#8230;$REPLY : equivalent de : head -1<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>read -r<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Contenu des dossiers sans les sous dossiers<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>for fichier in *;do ls -al ;done<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Contenu des dossiers avec les sous dossiers<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>for fichier in *;do ls -al &laquo;&nbsp;$fichier&nbsp;&raquo;;done<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>nombre de fichiers dans le repertoire courant (equivaut a: ls|wc -l)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>a=0;for i in *;do a=$(($a+1));done;echo nb=$a<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>apostrophe et guillemet<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo -n &laquo;&nbsp;your name is: &laquo;&nbsp;; read name &#8230;&#8230;&#8230;.. #taper: toto<br \/>\necho &lsquo;hi $name&rsquo; &#8230;&#8230;&#8230;.. #resultat : hi name<br \/>\necho &laquo;&nbsp;hi $name&nbsp;&raquo; &#8230;&#8230;&#8230;.. #resultat : hi toto<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>par defaut, le separateur est &lsquo;blanc&rsquo;<br \/>\n[Utiliser les parentheses () pour le sous shell]<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>echo &laquo;&nbsp;moi et moi, lui, les autres&nbsp;&raquo; | (read x y ;echo $y) &#8230;&#8230;&#8230;.. (-&gt;lui les autres)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>nouveau separateur<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>IFS=&nbsp;&raquo;,&nbsp;&raquo;;echo &laquo;&nbsp;moi et moi, lui, les autres&nbsp;&raquo; | (read x y;echo $x) &#8230;&#8230;&#8230;.. (-&gt;moi et moi)<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>liste des variables d&rsquo;environnement<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>export<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>detruire la valeur d&rsquo;une variable<br \/>\n(utiliser un sous shell en tapant: sh + return)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>var=7 echo $var &#8230;&#8230;&#8230;.. -&gt; 7<br \/>\nunset var &#8230;&#8230;&#8230;.. -&gt; nothing<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Concatenation<br \/>\n(utiliser un sous shell en tapant: sh + return)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>var=debut;echo ${var}ant &#8230;&#8230;&#8230;.. &#8212;-&gt;debutant<\/strong><\/div>\n<\/li>\n<li><strong><strong><strong>Commande &lsquo;set&rsquo; et &lsquo;shift&rsquo;<br \/>\n(utiliser un sous shell en tapant: sh + return)<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>c=&nbsp;&raquo;prof eleve classe note&nbsp;&raquo;;set $c;echo $1 $2<br \/>\n&#8230;&#8230;&#8230;.. &#8212;&gt;prof eleve<br \/>\nc=&nbsp;&raquo;prof eleve classe note&nbsp;&raquo;;shift;echo $1 $2<br \/>\n&#8230;&#8230;&#8230;.. &#8212;&gt;eleve classe<\/strong><\/div>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul style=\"margin-left: 0pt; margin-right: 0pt; padding-left: 8pt; color: #000000; font-family: 'Times New Roman'; font-size: medium; line-height: normal;\">\n<li><strong><strong>Commande &lsquo;eval&rsquo;<br \/>\n(utiliser un sous shell en tapant: sh + return)<br \/>\n<\/strong><\/strong><\/p>\n<div style=\"background-color: #e0e0e0; color: #000000; border: thin solid; margin-left: 100pt; margin-right: 100pt; padding: 4pt;\"><strong>message=&nbsp;&raquo;date d&rsquo;aujourd&rsquo;hui?&nbsp;&raquo;;set $message;echo $# &#8230;&#8230;.#resultat: 2<br \/>\nmessage=&nbsp;&raquo;date d&rsquo;aujourd&rsquo;hui?&nbsp;&raquo;;set $message;echo $1 &#8230;&#8230;.#resultat: date<br \/>\nmessage=&nbsp;&raquo;date d&rsquo;aujourd&rsquo;hui?&nbsp;&raquo;;set $message;eval $1 &#8230;&#8230;.#resultat: dim 20 jan..<\/strong><\/div>\n<div><strong>\u00a0<\/strong><\/div>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>SOMMAIRE 1- Numeroter &#8211; compter &#8211; additionner &#8211; cumuler 2- operations sur les champs : NF 3- operations sur les lignes : NR &#8211; occurrences 4- pattern 5- Remplacer des lignes des chiffres ou des lettres 6- Supprimer ou inserer des lignes blanches ,espaces ,tabulations 7- Inserer 8- divers L&rsquo;execution du script peut d\u00e9pendre de &hellip; <a href=\"http:\/\/les-fougs.com\/wordpress\/2013\/03\/11\/grep-awk-sed\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;grep &#8211; awk &#8211; sed&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[51],"tags":[],"_links":{"self":[{"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/posts\/114"}],"collection":[{"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":0,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"wp:attachment":[{"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}