사이트를 검색하여 비슷한 질문을 보았지만 작동하도록 할 수 없습니다. 나는 다음을 따르려고 노력합니다.문자열을 특정 위치로 분할그러나 성공하지 못했습니다. 나는 코헨과 함께 일해요.
나는 주로 전달되는 파일의 디렉토리를 원합니다. 따라서 파일은 다음과 같습니다.
/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를 전달). 빼기 기호를 추가합니다. 문자는 문자열 끝까지 필요하다는 의미입니다. (빼기 기호를 사용하지 않으면 다음 구분 기호에서 문자열이 중지됩니다.)