점(.)에서 두 번째 열을 자르는 방법은 무엇입니까?

점(.)에서 두 번째 열을 자르는 방법은 무엇입니까?

입력하다:

10.175.192.16   vgxyxgf.de.foo.net  asdf    34efg
10.175.192.17   sdtds.de.foo.net    xyyxv   e5432
10.175.243.20   asdfycfb.us.foo.net dfvasf  34525

산출:

10.175.192.16   vgxyxgf
10.175.192.17   sdtds
10.175.243.20   asdfycfb

어떻게 출력을 얻을 수 있나요? "awk '{SOMEMAGIC}' foo.txt와 같습니다.

그래서 "입력"이 있고 /etc/hosts 파일 스타일 출력이 필요합니다... :\

답변1

재미삼아 다음은 no-no awk답변 입니다 sed.

cut -f1-4 -d. foo.txt

답변2

그리고awk

awk '{sub(/\..*/,"",$2);$0=$1 "  "$2}1' foo.txt

그리고sed

sed 's/^\(\([^.]*\.\)\{4\}\).*$/\1/;s/\.$//' foo.txt

답변3

또 다른 awk 솔루션은 다음과 같습니다.스티븐의 cut대답:

awk -F. -v OFS=. '{print $1, $2, $3, $4}' filename

점을 필드 구분 기호로 사용하고 처음 4개 필드를 점으로 구분하여 인쇄합니다.

관련 정보