Używając sed
jednej linijki do wydrukowania pierwszych n znaków ? Wykonuję następujące czynności:
grep -G 'defn -test.*' OctaneFullTest.clj | sed ....
Używając sed
jednej linijki do wydrukowania pierwszych n znaków ? Wykonuję następujące czynności:
grep -G 'defn -test.*' OctaneFullTest.clj | sed ....
Odpowiedzi:
Nie używaj sed
, użyj cut
:
grep .... | cut -c 1-N
Jeśli MUSISZ użyć sed
:
grep ... | sed -e 's/^\(.\{12\}\).*/\1/'
sed -r 's/^(.{12}).*/\1/'
.
-r
jest najwyraźniej dostępny w systemie Linux, ale nie na Macu.
cut -c 1-N
(gdzie N jest liczbą) wykonuje pracę na mojej instalacji Cygwin (Cygwin v 2.6, cięcie v 8.25.). Na OS X, użyj sed -E
zamiast sed -r
stosowane gdzie indziej.
colrm x
Na przykład, jeśli potrzebujesz pierwszych 100 znaków:
cat file |colrm 101
Istnieje od lat i jest w większości systemów Linux i bsd (na pewno freebsd), zwykle domyślnie. Nie pamiętam, żebym kiedykolwiek musiał pisać apt-get install colrm
.
colrm
rozumie utf8.
nie musisz też używać grep
przykład:
sed -n '/searchwords/{s/^\(.\{12\}\).*/\1/g;p}' file
Ściśle z sed:
grep ... | sed -e 's/^\(.\{N\}\).*$/\1/'
A co z głową ?
echo alonglineoftext | head -c 9
cut
, nie działa, podczas gdysed
tak.