2017-10-16 8 views
1

파일에서 두 개의 콜론과 다른 숫자 사이의 숫자를 얻으려고합니다.숫자와 콜론 사이의 숫자를 찾으려면 어떻게합니까?

예 :

1234:12345678:1234 
1234:12345678:1234 
1234:12345678:1234 

나는 출력이 12345678의 및 아무것도 모두를 보여주고 싶어. 이와 같이

는 :

12345678 
12345678 
12345678 

는 I이 사용 달성 (? AWK 또는 나오지)

egrep -o "[0-9]{8}" file 

문제점 I 다른 egrep을 -o보다 용액을 필요로한다는 것이다 I가 탐색

그리고 succes없이 두 가지를 시도했습니다.

도움이 될 것입니다.

+0

사용'나오지도의/: \/\ 1/(* \.) 'file'는 - 드 - 리미터'사이에서 인쇄 :이있는 경우 Awk' 여기에 까다로운 일이 될 수있다'사용' 3 열 이상이고 값이 항상 2 열인 지 확실하지 않은 경우 다른 de-limiter가있는 열이 3 개 이상있는 경우에도 작동합니다. – Inian

+0

@Inian이 기능은 콜론을 제거하고 모든 숫자를 표시하는 것입니다. 나는 8 개의 숫자 만보고 싶다. – xSulky

답변

0

은 "수"2 열은 항상 경우, AWK와 함께 할 수있는 :는 awk 솔루션

awk -F: '{print $2}' file 
+0

완벽하게 작동합니다. 감사합니다! 항상 2 번째 칼럼은 아니지만 3 번째 칼럼도 있습니다. 그래서 나는 1, 2, 3 행의 8 행을보고 싶습니다. 행 1 = 12345678 : 1234 : 1234, 행 2 = 1234 : 12345678 : 1234 및 행 3 = 1234 : 1234 : 12345678. 필요는 없지만 이것을 알고 싶습니다! :) – xSulky

+0

관심있는 열이 3 일이면 $ 2에서 $ 3로 변경하십시오. 컬럼 2의 길이가 8이어야한다면, awk -F : '$ 2 && length ($ 2) == 8 {print $ 2}'file'을 할 수 있습니다. – usr

+0

이것은 흥미로운 점입니다. 감사합니다. 모든 8 개의 긴 문자열을 표시하는 방법에 대한 아이디어가 있습니까? 어떤 열이 있더라도 상관 없습니다. – xSulky

0

awk -F: '{print $2}' file 

을하거나 할 cut를 사용, 그

cut -d: -f2 file 
+0

고마워요! 두 솔루션 모두 작동합니다. 이 예제의 8 가지 숫자도 원한다고 가정 해보십시오. 1234 : 1234 : 12345678 또한 표시하고 싶으면 명령이 작동하지 않습니다. 그럼 내가 그걸 어떻게 보여줄 수 있는지 당신은 알고 있니? – xSulky

+0

awk -F : '{print $ 3}'파일 – CWLiu

+0

예, 세 번째 열 번호를 보려면이 방법이 유용합니다. 나는 내가 무엇을 의미하는지에 관해 명확하지 않았다. 8 개의 번호가 매겨진 열 모두를보고 싶습니다. 따라서 1234 : 1234 : 12345678과 1234 : 12345678 : 1234도 마찬가지입니다. 그래도 감사합니다! – xSulky

0

이 방법이 유용할까요?

awk -F':' '{print $2}' test > test results.txt 
+0

결과가있는 파일을 만들려고한다고 가정합니다. 이것은 나를 위해 작동하지 않으며 그것을 달성하기 위해 노력하고있는 것 같지 않습니다 :). 타이! – xSulky

+0

이 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. - [리뷰에서] (리뷰/저품절 포스트/17639504) – purplepsycho