8번째 문자부터 두 번째 줄 전체를 인쇄하고 싶습니다.
예:
1234567890
12 45 7foobar
1234567890
산출:
foobar
sed -n '2p'
두 번째 줄 전체를 인쇄하려고 합니다.
답변1
sed를 사용하세요:
sed -n '2s/.\{7\}//p' file
awk를 사용하세요:
awk 'NR==2{print substr($0,8)}' file
답변2
cut
8번째 문자 이후의 내용만 가져오는 데 사용됩니다 .
$ sed -n "2p" test | cut -c 8-
foobar
답변3
grep
$ grep -zoP '\A(?:.*\n){1}.{7}\K.*' file | tr -d '\0'
$ grep -m2 ^ file | tail -n 1 | cut -c8-
$ grep -Pom2 '.{7}\K.*' file | tail -n 1
파이썬
$ python3 -c 'print(open("file").read().splitlines()[1][7:])'
진주
$ perl -lne 'print(unpack("x7A*")), last if 2..2' file
sed
$ sed -e '
/\n/{s/.$//;q;}
2G;//s/./\n/7;D
' file
배쉬 내장 함수
N=1
while IFS= read -r l; do
case $N in
2)
printf '%s\n' "${l:7}"
break;;
esac
(( N++ ))
done < file
피복재:
grep은 파일을 후루룩 마시고 첫 번째 줄을 건너뛰고 두 번째 줄의 7자를 건너뛰고 해당 줄의 나머지 문자를 출력 패킷에 넣습니다.
grep은 전체 줄인 2개의 일치 항목을 인쇄한 다음 if cut 메서드를 통해 꼬리를 잡고 처음 7자를 자릅니다.
Python은 파일을 읽고 여러 줄로 나누고 두 번째 파일을 선택한 다음 8번째 문자를 인쇄합니다.
Perl은 두 번째 줄의 압축을 풀고 처음 7자를 무시하고 그 이후의 각 문자를 인쇄합니다.
bash 내장 기능은 설명이 필요 없습니다.
답변4
awk와 Python의 두 가지 방법을 통해 완료됨
awk 'NR==2{sub(/^.{7}/,"",$0);print $0}' filename
python
#!/usr/bin/python
import re
m=re.compile(r'.{7}')
k=open('filename','r')
j=[]
for i in k:
j.append(i.strip())
print re.sub(m,"",j[1])
산출
foobar