只是试图剪切文本每行第七个之后的任何字符。
我最初尝试过这个:
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
但它所做的只是删除了#
.我只想删除第 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