명령줄에서 각 줄의 첫 번째 및 마지막 문자 제거

명령줄에서 각 줄의 첫 번째 및 마지막 문자 제거

텍스트 파일에서 각 줄의 첫 번째 문자와 마지막 문자를 제거하고 결과 잘린 버전을 새 파일에 저장하려고 합니다. awk대용량 파일을 위해 특별히 다른 Linux 프로그램/명령을 사용하여 이를 효율적으로 수행하는 방법을 아는 사람이 있습니까 ?

입력.txt

(s,2,4,5,6)
"s,1,5,5,2"
{z,0,4,5,3}
[y,2,4,5,5]
(y,4,4,5,7)
(r,20,4,5,7)
(e,9,4,5,2)

예상 출력.txt

s,2,4,5,6
s,1,5,5,2
z,0,4,5,3
y,2,4,5,5
y,4,4,5,79
r,20,4,5,7
e,9,4,5,2

답변1

이를 위한 또 다른 방법은 다음과 같습니다.

rev input | cut -c2- | rev | cut -c2-

(참고: GNU의 경우 cut(귀하의 예에서와 같이) 1바이트로만 구성된 문자에만 작동합니다.)

답변2

귀하의 질문에 따라 다음과 같이 입력 파일에서 마지막 단어와 첫 번째 단어를 제거하십시오.

sed 's/.$//; s/^.//' inputfile

답변3

언제나 그렇듯이 가능성은 많습니다

sed 's,.\(.*\).$,\1,g' your_file

설명하다

  • ,-- sed 구분 기호는 필요할 때 이스케이프되는 한 다른 문자일 수도 있습니다.
  • .단일 문자 일치
  • \(.*\)- 나머지 부분을 그룹화하여 추가 검색을 위해 보관합니다.
  • .단일 문자를 다시 일치시킵니다.
  • $- 줄 끝
  • \1- 위 그룹과 일치하는 텍스트 출력
  • g전역적으로 교체하면 됩니다.

답변4

awk원한다면 이렇게 할 수도 있습니다.

awk '{print substr($0,2,length()-2);}' input.txt > output.txt

관련 정보