Comment utiliser sed
une seule ligne pour imprimer les n premiers caractères ? Je fais ce qui suit:
grep -G 'defn -test.*' OctaneFullTest.clj | sed ....
Comment utiliser sed
une seule ligne pour imprimer les n premiers caractères ? Je fais ce qui suit:
grep -G 'defn -test.*' OctaneFullTest.clj | sed ....
Réponses:
N'utilisez pas sed
, utilisez cut
:
grep .... | cut -c 1-N
Si vous DEVEZ utiliser sed
:
grep ... | sed -e 's/^\(.\{12\}\).*/\1/'
sed -r 's/^(.{12}).*/\1/'
.
-r
est apparemment disponible sur Linux, mais pas sur Mac.
cut -c 1-N
(où N est un nombre) fait le travail sur mon installation Cygwin (Cygwin v 2.6, coupe v 8.25.). Sur OS X, utilisez sed -E
plutôt que sed -r
, utilisé ailleurs.
colrm x
Par exemple, si vous avez besoin des 100 premiers caractères:
cat file |colrm 101
Il existe depuis des années et se trouve dans la plupart des Linux et BSD (freebsd bien sûr), généralement par défaut. Je ne me souviens pas avoir jamais eu à taper apt-get install colrm
.
colrm
comprend utf8.
pas besoin d'utiliser grep non plus
un exemple:
sed -n '/searchwords/{s/^\(.\{12\}\).*/\1/g;p}' file
Strictement avec sed:
grep ... | sed -e 's/^\(.\{N\}\).*$/\1/'
Et la tête ?
echo alonglineoftext | head -c 9
cut
cela ne le coupe passed
.