
テキストの各行で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