문자열을 특정 문자로 자르기 [닫기]

문자열을 특정 문자로 자르기 [닫기]

사이트를 검색하여 비슷한 질문을 보았지만 작동하도록 할 수 없습니다. 나는 다음을 따르려고 노력합니다.문자열을 특정 위치로 분할그러나 성공하지 못했습니다. 나는 코헨과 함께 일해요.

나는 주로 전달되는 파일의 디렉토리를 원합니다. 따라서 파일은 다음과 같습니다.

/home/me/working/from/here/howareyou.txt

그래서 나는 다음을 얻고 싶습니다 :

/home/me/working/from/here/

나는 성공하지 않고 이것을 시도했습니다.

THEDIR="${1%//*}"

그러나 그것은 단지 전체 논쟁을 뱉어낼 뿐입니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사해요.

답변1

슬래시를 사용하다

THEDIR="${1%/*}"

느리지만 기억하기 쉽습니다 dirname.

답변2

나는 rev와 함께 cut을 사용하는 것을 좋아합니다. 기본적으로 파일의 전체 경로를 rev로 파이프하여 문자열 이름을 반대로 바꿉니다. 그런 다음 파이프를 통해 절단하고 원하는 필드 번호 뒤에 "-"를 추가한 다음 다시 뒤집습니다.

결과는 비슷합니다.

echo "$name" | rev | cut -d'/' -f2- | rev

아직 모르는 경우 구분 기호(-d로 표시) 주위로 문자열을 분할하고 원하는 필드(-f로 표시)를 선택합니다(문자열의 두 번째 부분을 원한다는 의미로 2를 전달). 빼기 기호를 추가합니다. 문자는 문자열 끝까지 필요하다는 의미입니다. (빼기 기호를 사용하지 않으면 다음 구분 기호에서 문자열이 중지됩니다.)

관련 정보