web-dev-qa-db-ja.com

sedを使用して、行の最初の「N」文字をどのように印刷しますか?

Sedでは、最初のn文字を印刷する1つのライナーは何ですか。私は次のことをしています。

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

Sedは使用せず、cutを使用してください。

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

Sedを使用する必要がある場合:

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

たとえば、最初の100文字が必要な場合:

cat file |colrm 101 

それは何年も前からあり、ほとんどのLinuxとbsd(確かにfreebsd)にあり、通常はデフォルトです。 apt-get install colrmと入力したことを覚えていない。

41
manoflinux

どちらもgrepを使用する必要はありません

例:

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

厳密にsedで:

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

最初のN文字を印刷するには、行末までN + 1文字を削除できます。

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