sed로“]”뒤에 한 줄에서 모든 문자를 삭제하는 방법은 무엇입니까?


13

sed로 "]"뒤에 한 줄에서 모든 문자를 삭제하는 방법은 무엇입니까?

cat, awk를 사용하여 일부 파일을 grep하려고합니다. 이제 내 oneliner가 다음과 같은 것을 반환합니다.

121.122.121.111] other characters in logs from sendmail.... :)

이제 "]"문자 뒤의 "" "뒤에있는 문자를 모두 삭제하려고합니다. 나는 단지 121.122.121.111내 결과물을 원한다 .

나는 sed의 특정 예에 대해 인터넷 검색을했지만 그 예에서 도움을 찾지 못했습니다.

답변:


20
 echo "121.122.121.111] other characters in logs from sendmail...." | sed 's/].*//' 

그래서 당신이 그런 줄로 가득 찬 파일을 가지고 있다면

 sed 's/].*//' filename

12

cut대신 어떻습니까 :

cat logfile | cut -d "]" -f1

3

같은 것

sed 's|\(.*\)\] .*$|\1|'

당신이 원하는 것을해야합니다. 이 \(.*\)]받는 모든 텍스트를 캡처 ]기억 된 패턴 다음에 \1전체 라인에 대한 대체를.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.