SEDを使用して各行の7番目の文字の後ろを切り取ります。

SEDを使用して各行の7番目の文字の後ろを切り取ります。

テキストの各行で7番目以降の文字を切り取りようとしています。

私は最初にこれを試しました:

sed 's/(.{7}).*/\1/' TestText.txt 

ところで、このような答えを受けました。

sed: 1: "s/(.{7}).*/\1/": \1 not defined in the RE

それからこれを試しました。

$ sed 's/./&#/7' TestText.txt 
Ballbou#nce
Latllma#tattjsdf
dsfase,#d,
adfadfj#jen
asdfjov#moeo
$ sed -e 's/#.*//' TestText.txt 
Ballbounce
Latllmatattjsdf
dsfase,d,
adfadfjjen
asdfjovmoeo

しかし、それがすることはdeleteだけです#。 7番目の文字以降のすべての文字を削除したいと思います。

ベストアンサー1

sed次のように使用します-r

sed -r 's/(.{7}).*/\1/' file

または角かっこをエスケープします。

sed 's/\(.\{7\}\).*/\1/' file

または、次のように使用できますgrep-E拡張正規表現を有効にし、-o一致するパターンのみを印刷)。

grep -oE '^.{7}' file

そしてawk

awk '{print substr($0,1,7)}' file

もちろん、cutこの種の作業のために設計されています。

cut -c1-7 file

おすすめ記事