텍스트의 각 줄에서 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