bash 문자 뒤에 있는 텍스트를 모두 삭제하려면 어떻게 해야 합니까?
bash에서 문자(이 경우 콜론(":)) 뒤에 있는 텍스트를 모두 삭제하려면 어떻게 해야 합니까?결장도 제거할 수 있나요?어떻게 해야 할지 모르겠어요.
Bash(및 ksh, zsh, 대시 등)에서는 파라미터 확장을 다음과 같이 사용할 수 있습니다.%
문자열 끝에서 문자를 삭제합니다.#
문자열 선두에서 문자를 삭제합니다.이러한 문자 중 하나를 사용하면 일치하는 최소 문자열이 제거됩니다.문자를 두 배로 하면 가장 긴 문자가 삭제됩니다.
$ a='hello:world'
$ b=${a%:*}
$ echo "$b"
hello
$ a='hello:world:of:tomorrow'
$ echo "${a%:*}"
hello:world:of
$ echo "${a%%:*}"
hello
$ echo "${a#*:}"
world:of:tomorrow
$ echo "${a##*:}"
tomorrow
예를 들어 도움이 될 수도 있었지만, 제가 제대로 이해했다면, 다음과 같이 할 수 있었을 것입니다.
echo "Hello: world" | cut -f1 -d":"
변환됩니다.Hello: world
안으로Hello
.
$ echo 'hello:world:again' |sed 's/:.*//'
hello
몇 가지 해결책을 알고 있습니다.
# Our mock data:
A=user:mail:password
- 송곳니 및 파이프 포함:
$ echo $A | awk -v FS=':' '{print $1}'
user
- bash 변수 경유:
$ echo ${A%%:*}
user
- 파이프 및 SED 포함:
$ echo $A | sed 's#:.*##g'
user
- 파이프 및 GREP 포함:
$ echo $A | egrep -o '^[^:]+'
user
- 파이프 및 절단 포함:
$ echo $A | cut -f1 -d\:
user
egrep -o '^[^:]*:'
":"의 마지막 예 뒤에 있는 모든 것을 잘라내다.
grep -o '^.*:' fileListingPathsAndFiles.txt
그리고 마지막 ":"를 빼고 싶다면요.
grep -o '^.*:' file.txt | sed 's/:$//'
@kp123: 교환이 필요한 경우:
와 함께/
(SED 결장이 있어야 할 곳)\/
)
다음과 같은 형식의 파일을 가진 경로가 있다고 가정합니다.
/dirA/dirB/dirC/filename.file
이제 4개의 "/"를 포함하는 경로만 필요합니다.유형
$ echo "/dirA/dirB/dirC/filename.file" | cut -f1-4 -d"/"
출력은 다음과 같습니다.
/dirA/dirB/dirC
잘라내기를 사용하면 파일(이 예에서는)뿐만 아니라 최상위 디렉토리도 잘라낼 수 있기 때문에 다음과 같이 입력합니다.
$ echo "/dirA/dirB/dirC/filename.file" | cut -f1-3 -d"/"
출력은 다음과 같습니다.
/dirA/dirB
스트링의 반대쪽에서도 같은 작업을 할 수 있지만, 이 경우는 타이핑으로 하는 것이 그다지 의미가 없습니다.
$ echo "/dirA/dirB/dirC/filename.file" | cut -f2-4 -d"/"
을 낳다
dirA/dirB/dirC
다른 경우에는 마지막 사례도 도움이 될 수 있습니다.마지막 출력 시작 부분에는 "/"가 없습니다.
언급URL : https://stackoverflow.com/questions/4168371/how-can-i-remove-all-text-after-a-character-in-bash
'programing' 카테고리의 다른 글
디렉토리를 tar하지만 완전한 절대 경로를 아카이브에 저장하지 않음 (0) | 2023.04.08 |
---|---|
SQL Server의 datetime 필드의 기본값을 타임스탬프에 추가합니다. (0) | 2023.04.08 |
cron의 Windows 버전은 무엇입니까? (0) | 2023.04.08 |
Json Schema 파일 확장자 (0) | 2023.02.14 |
리액트 후크를 사용하여 자기 증가 카운터 구현 (0) | 2023.02.14 |