Linux_Piping Exercise

이번 리눅스 파이프 개념을 실습하기 위해서는 PokemonExercise/ 위치에서 실습을 진행하기 위해 터미널을 그곳으로

위치시킨다.

파이프란 말 그대로 커멘드와 커멘드를 연결시키는 파이프 역할이라고 보면 된다.

 

PokeDex/ 폴더에 있는 파일의 수를 카운트 해야하는데, 

이처럼 PokemonExercise/ 폴더에는 내부 폴더에 있는 파일의 수를 wc 커멘드를 이용하여 셀 수 없다.

그렇기에 파이프 '|'를 이용해야 한다.

'ls' 커멘드는 인자로 폴더의 위치를 지정할 수 있기 때문에, 'ls' 커멘드와 'wc -l' 커멘드를 조합하여

'ls' 커멘드를 활용하여 PokeDex/ 폴더에 있는 파일의 수를 확인하고 파이프를 활용하여 다음에 실행할

명령어와 연결해준 뒤, 'wc -l'을 사용하여 해당 폴더에 있는 파일의 수를 확인하였다.

다음으로 새로운 폴더를 생성하고 그곳에 PokeDex/ 폴더에 들어있는 모든 알파벳을 소문자로 변환 후, 정렬하여

넣어놓아야 한다.  그렇기 위해선 파일 위치를 지정할 'ls', 알파벳을 소문자로 변환할 'tr', 숫자로 파일을 정렬할 'sort -n'

커멘드들을 파이프를 통해 결합해야 한다.

이렇게 3개의 커멘드를 파이프를 통해 결합하고 확인해보니 잘 생성되었다.

'cat' 커멘드를 통해 생성된 폴더에 PokeDex/ 폴더에 있던 파일들이 잘 정렬되어서 저장된 것을 확인 할 수 있었다.

포켓몬 번호 순서를 잘 정렬시킨 새로 생성한 폴더에서 head 명령어와 tail 명령어를 파이프 연결하여 위 3개의 포켓몬을 출력한다.

 

나는 'cat' 명령어를 활용하여 all-poketmon.txt 파일을 열고 그안에 있는 'head -18' 커멘드를 활용하여 위에서부터 

18개의 포켓몬을 가져오고 'tail -3'을 활용하여 아래서부터 3개를 받아와 미션에서 주어진 16, 17, 18 포켓몬을 출력하였다.

그런데 모범답안을 보니 'head' 명령어는 파일 주소값을 인자로 받을 수 있었다!

 

그래서 나처럼 'cat', 'head', 'tail' 3개를 파이프로 묶어주지 않고, 'cat'을 제외하고 해도 충분히

원하는 값을 출력할 수 있다.

 

마지막 실습 미션은 151개의 포켓몬들의 숫자를 'tr'커멘드를 활용하여 숫자를 제거하고 알파벳 순으로 정렬 한 후,

새로운 txt 파일을 만들어 그곳에 저장하여야 한다.

그렇기 위해선  [ 'head' | 'tr' | 'sort' > 새로운 파일 ] 형식으로 커멘드를 파이프 연결 하고 옵션과 인자값을

잘 넣으면 될 것 같다.

 

 

 

위 결과 처럼 'head' 커멘드에 인자값을 '181' 넣고, 'tr' 커멘드 'd' 옵션에 숫자를 제거하기 위한 인자 '0-9'를 넣고,

'sort' 커멘드를 새로 만든 파일에 리다이렉션 '>' 하였다.

그 결과 위처럼 실습 미션을 잘 성공하였다.

'Linux' 카테고리의 다른 글

Linux_Find Excercise  (0) 2024.03.20
Linux_Expansion Exercise  (1) 2024.03.17
Linux_Redirection Exercise  (0) 2024.03.14
Linux_Working With Files Exercise  (2) 2024.03.12
Linux_Deleting, Moving & Copying Exercise  (0) 2024.03.07