이것을 어떻게 얻습니까?
randomcollege-nt\user90
이에:
user90
사용하여 sed
?
sed
방문 튜토리얼 : grymoire.com/Unix/Sed.html
이것을 어떻게 얻습니까?
randomcollege-nt\user90
이에:
user90
사용하여 sed
?
sed
방문 튜토리얼 : grymoire.com/Unix/Sed.html
답변:
나는 간단한 것을 사용 grep
하여 찾을 것이다 user90
:
$ echo "randomcollege-nt\user90" | grep -o user90
user90
user90이 일정하지 않은 경우 다음 명령을 선호하십시오.
$ echo "randomcollege-nt\user90" | grep -oP '(?<=randomcollege-nt\\)\w+'
user90
마지막으로 sed
파일을 편집하는 데 사용 합니다.
$ sed -ri 's/randomcollege-nt\\(user[0-9]+)/\1/' my_file
또는 가능한 모든 사용자 계정과 일치 시키려면
$ sed -ri 's/randomcollege-nt\\(\w+)/\1/' my_file
grep -F
전체 문자열 인 경우에만 나타납니다 .
domain\username
Windows에서 문자열 에서 사용자 이름을 추출하기 위해 일부 텍스트를 구문 분석하고 있습니다. 위의 답변 중 대부분은 특정 예제 문자열 만 다루고 있습니다.
이 작업을 수행하는 가장 좋은 방법은 sed에서 정규식을 사용하여 이후에 나오는 것을 추출하는 것 \
입니다. 방법은 다음과 같습니다.
sed 's|.*\\\(.*\)|\1|'
.*
백 슬래시가 될 때까지 모든 항목 ( ) 과 일치 합니다 (여기서 우리는 이스케이프하므로 \\
). 백 슬래시 ( .*
) 뒤의 모든 항목을 일치 시키지만 캡처 그룹 (즉, 주위에 대괄호를 묶어야 함)도 탈출해야합니다. 그들 \(.*\)
). 이제 \
문자열에서 캡처 그룹으로 뒤에 오는 모든 것이 있으므로을 참조하여 인쇄합니다 \1
.
반드시 위의 sed
명령을 도메인 이름과 함께 사용할 수 있습니다 randomcollege-nt
.
$ echo "randomcollege-nt\user90" | sed 's|.*\\\(.*\)|\1|'
user90
$ echo "domain\username" | sed 's|.*\\\(.*\)|\1|'
username
$ echo "anydomainname\roboman1723" | sed 's|.*\\\(.*\)|\1|'
roboman1723
다른 sed
:
$ echo "randomcollege-nt\user90" | LC_ALL=C sed -e 's/.*\\//'
user90
또는 POSIXly :
$ a='randomcollege-nt\user90'
$ printf '%s\n' "${a##*\\}"
user90
sh
기능입니다. pubs.opengroup.org/onlinepubs/009604599/utilities/…
나는 당신이 sed를 사용하고 싶다는 것을 알고 있지만 다른 것을 사용할 것입니다 ...
echo "randomcollege-nt\user90" | cut -d'\' -f2
이것이 질문입니까?
$ echo randomcollege-nt\user90| sed -e s,randomcollege-nt\,,
user90
스팅 randomcollege-nt가 일정하지 않은 경우 위 / 아래의 awk 명령을 사용하십시오.
/user90
되지user90
대신 'awk'를 사용하여 "user90"을 필터링하십시오.
echo "randomcollege-nt\user90" | awk -F\\ {'print $2'}
man the_command_name
하면 명령에 대한 유용한 지침 설명서가 제공됩니다. www.google.com으로 이동하여 "command_name tutorial"을 입력하면 다양한 단계별 가이드를 찾을 수 있습니다.