파일의 숫자와 문자 수를 계산하는 스크립트

파일의 숫자와 문자 수를 계산하는 스크립트

안녕하세요 여러분, 저는 이 빌어먹을 사전 시험 연습 때문에 정말 막혔습니다.

연습: 파일 이름(첫 번째 인수)을 취하고 파일에 있는 숫자와 문자의 수를 계산하는 scrypt를 작성하세요. Scrypt는 또한 이 모든 숫자를 합산해야 합니다.

1 2 3 4 5
9 2 3 1 2 a l a i o l a 
9 2 ala ma kota 102

다음과 같아야 합니다.

 File ....... have 15 numbers and 16 letters.
 Sum of all of those numbers is 145.  

내 생각은 이 연습에 어떻게 접근해야 하는가입니다(단계별).

  1. 파일 이름 캡처(인수로)
  2. 전체 데이터를 하나의 행으로 구문 분석합니다(더 쉬운 정렬을 위해).
  3. 전체 데이터를 숫자로 정렬합니다(이와 같은 결과를 얻음 1 2 3 4 5 6 (...) 102 aaaaaaikm (...)
  4. 합산 및 계산을 용이하게 하기 위해 첫 번째 숫자를 매개변수($1-$13)로 설정 + 계산을 용이하게 하기 위해 문자를 매개변수로 설정
  5. 모든 것을 콘솔에 표시
  6. 내 인생을 즐기고 Overwatch를 플레이합니다(농담입니다. Linux 학습 {시험 전의 귀여운 것들}으로 돌아가서)

    나는 붙어있다.

    2단계. 이 데이터를 분석한 후 다음과 같은 결과를 얻었습니다(찾을 수 있는 거의 모든 것을 시도했습니다).

    1 2 3 4 5 9 2 3 1 2 a l a i o l a 9 2 ala ma kota 102
    

실제로 이 3개 행을 1개로 병합하는 방법을 모르겠습니다. 2개 정렬을 시도할 때마다 처음으로 돌아갑니다.

echo `cat kolos3 | xargs | sort -n `  

이 운동을 도와줄 수 있는 사람이 있다면 좋을 것 같습니다.

답변1

grep -o입력을 동일한 라인에 연결하는지 여부에 관계없이 대부분의 작업이 여기에서 수행됩니다.

-o, --match만 해당
일치하는 줄의 일치하는(비어 있지 않은) 부분만 인쇄하며, 각 부분은 별도의 출력 줄에 표시됩니다.

글자 수를 세어보세요.

grep -o "[[:alpha:]]" "$file" | wc -l

계산하다숫자:

grep -o "[[:digit:]]" "$file" | wc -l

하지만 당신이 원한다면숫자:

grep -o "[[:digit:]]\+" "$file" | wc -l

숫자를 합산하려면 다음 솔루션 중 하나를 사용할 수 있습니다.여러 명령줄 인수를 합산하는 bash 스크립트를 만드는 방법은 무엇입니까?

이 질문을 다음 사람에게 전달하겠습니다 bc.

(grep -o "[[:digit:]]\+" "$file" | tr '\n' + ;echo 0)|bc

관련 정보