web-dev-qa-db-fra.com

Avec sed, comment imprimez-vous les premiers "N" caractères d'une ligne?

Avec sed, c’est quoi un liner pour imprimer les n premiers caractères. Je fais ce qui suit.

grep -G 'defn -test.*' OctaneFullTest.clj  | sed ....
88
Berlin Brown

N'utilisez pas sed, utilisez cut.

grep .... | cut -c 1-N

Si vous DEVEZ utiliser sed:

grep ... | sed -e 's/^\(.\{12\}\).*/\1/'
182
Paul Tomblin
colrm x

Par exemple, si vous avez besoin des 100 premiers caractères:

cat file |colrm 101 

Il existe depuis des années et est dans la plupart des linux et des bsd (freebsd bien sûr), généralement par défaut. Je ne me souviens pas avoir jamais eu à taper apt-get install colrm.

41
manoflinux

ne pas avoir à utiliser grep non plus

un exemple:

sed -n '/searchwords/{s/^\(.\{12\}\).*/\1/g;p}' file
7
ghostdog74

Strictement avec sed:

grep ... | sed -e 's/^\(.\{N\}\).*$/\1/'
4
Diego Sevilla

Pour imprimer les N premiers caractères, vous pouvez supprimer les N + 1 caractères jusqu'à la fin de la ligne:

$ sed 's/.//5g' <<< "defn-test"
defn
3
SLePort