내 파일 데이터는 다음과 같습니다
bill johnson
robert dylan
neil o'bryan
요구 사항은 성을 추출하고 @mail.com을 추가하는 것입니다. 다음 명령을 사용했습니다.
cut -d"|" -f2 emp.lst | sed 's/\([a-z][a-z]*\) \([a-z][a-z]*\)/\[email protected]/'
-- 파일에서 두 번째 필드(전체 이름)를 가져오는 Cut 명령 -- 이름과 성을 분리하고 이메일을성에 할당하는 Sed
이름을 제외한 모든 것이 잘 작동하며 neil o'bryan
아래는 내가 얻은 결과입니다.
예상대로 작은따옴표로 이름을 얻는 방법을 알려주세요. 그게 다야[이메일 보호됨]
답변1
이메일 주소 o'brian
에 있어야 한다고 가정하면 원치 않는 문자를 제거하기 위해 파이프라인에 단계를 추가하기만 하면 됩니다.obrian
tr
cut -d "|" -f2 emp.lst |
tr -d "'" |
sed 's/\([a-z][a-z]*\) \([a-z][a-z]*\)/\[email protected]/'
제거하려는 다른 문자에 대해서도 동일한 작업을 수행하거나 다른 문자로 변환할 수 있습니다.
cut -d "|" -f2 emp.lst |
tr -d "'" |
tr 'åäöé' 'aaoe' |
sed 's/\([a-z][a-z]*\) \([a-z][a-z]*\)/\[email protected]/'
주소가 아포스트로피와 함께 있어야 하는 경우 정규식에 추가하면 됩니다.o'[email protected]
cut -d "|" -f2 emp.lst |
sed "s/\([a-z][a-z]*\) \([a-z]['a-z]*\)/\[email protected]/"