이열매의 메모장
쉘 스크립트 예제 본문
문제 1. 달력 가공하기
1. 데이터 파일 생성
서식 :
2019.01.01 Tue 1
2019.01.02 Wed 2
2019.01.03 Thu 3
...
2019.12.29 Sun 363
2019.12.30 Mon 364
2019.12.31 Tue 365
- 날짜 (2019.01.01 ~ 2019.12.31)
- 요일 (Sun ~ Sat)
- 일자 (1~365)
참고 힌트:
...더보기
파일 존재 확인 및 삭제
if [ -f "filename" ]
then
rm filename
fi
데이터 형식
VAR=1
printf "%02d" "$VAR" // 출력: 01
답안:
2. 해당 데이터에서 월과 요일을 입력 받아 행 출력
참고 힌트:
...더보기
리눅스 파일 한 줄씩 읽기
cat file | while read line; do
[수행할 문장]
echo "$line" // 해당 파일을 한 줄씩 출력
done
IFS 구분자
IFS=$' ' // 공백으로 구분자 설정
ARRAY=($line) // ARRAY배열은 line이라는 문자열을 공백으로 구분한 원소를 가진다
답안:
3. 해당 데이터에서 일자를 입력 받아 날짜 출력
답안:
문제 2. 텍스트 가공하기
1. 첨부한 데이터 파일을 해당 환경에 복사
2. 중복 건을 모두 제거한 파일을 만들고(이 때 내림차순 정렬해야 한다), 중복 전 후의 행 개수 차이를 출력
참고 힌트:
...더보기
- sort
- 정렬 명령어
- 기본적으로 오름차순으로 정렬
- uniq
- 앞뒤로 중복되는 내용 있을 경우 삭제
- 위 조건 때문에 sort와 함께 사용
- wc -l
- 파일 줄 개수 출력에 주로 사용
답안:
3. 중복 제거된 파일에서, 9번째 항목이 입력 받은 값과 다른 행들의 개수를 출력
- 첫 번째 인수 : 예) 200, 304, 399, 404
참고 힌트:
...더보기
- awk
- 파일의 레코드 조작 명령어
- 특정 필드 출력 시 사용
cat sample.txt | awk '{print $1}' // 해당 파일의 첫번째 행만 출력
답안:
4. 첫 번째 원본 데이터 파일에서 11번째 항목만 모두 출력한 후, 중복을 모두 제거하면서 해당 중복된 항목들의 건수를 출력
참고 힌트:
답안:
'Linux' 카테고리의 다른 글
리눅스 파일 디렉토리 구조 (0) | 2019.12.16 |
---|---|
리눅스 사용자 계정 (0) | 2019.10.21 |
파일 검색 명령어 (0) | 2019.10.09 |
리눅스 네트워크 명령어 (0) | 2019.10.09 |
네트워크 기본 지식 (0) | 2019.10.09 |
Comments