Comment utiliser sedune seule ligne pour imprimer les n premiers caractères ? Je fais ce qui suit:
grep -G 'defn -test.*' OctaneFullTest.clj | sed ....
Comment utiliser sedune 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/'.
-rest 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 -Eplutô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.
colrmcomprend 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
cutcela ne le coupe passed.