728x90

리눅스 12

shift 명령어

Shift 명령어 Shift 명령은 커맨드라인에 인수로 받아드린 값을 위치지정 매개변수에 다시 할당하여 커맨드라인 인수를 통해 증가 할 수 있도록 합니다. Shift n 을 한후 * 에 있는 모든 매개 변수가 n 위치만큼 왼쪽으로 이동하고 #는 n만큼 감소합니다. n의 초기값은 1입니다. shift 명령은 매개변수 0에 영향을 주지 않습니다. 일단 이동을 완료했으면, 명령줄을 벗어나 자리 이동된 인수들은 분실됩니다. 나중에 그것들을 프로그램에서 참조할 필요가 있으면, shift를 실행하기 전에 그 것들을 저장해야 합니다. 예제 #!/bin/sh orig_args=$* echo "$# 개의 인수를 입력받았습니다." echo "인수들 : $*" echo "shift 2를 실행합니다." shift 2 echo..

(AWK) 명령어 문법

AWK 명령어 문법 $ awk [옵션] 'pattern { action }' [파일|변수값] awk 옵션 설명 -u 버퍼를 사용하지 않고 출력한다. -F 확장된 정규 표현식으로 필드구분자를 지정한다, 다중 필드 구분자 사용 가능하다. awk -F 단일로 사용시 ':' 를 필드구분자로 사용 awk -F'[ :\t]' 다중 필드구분자 ':'와 tab을 필드구분자로 사용 -v 스크립트를 실행하기 전에 미리 변수를 지정하여 준다. -f awk 명령 스크립트를 파일에서 읽어온다. awk 동작 원리 - 패턴(pattern) 과 액션(action) awk는 파일 또는 파이프를 통해 입력 라인을 얻어와 $0라는 내부 변수에 라인을 입력한다. 각 라인은 레코드라고 부르고, newline(개행)에 의해 구분되다. 이때 패..

(쉘스크립트) AWK 개념

AWK (Aho Weinberger Kernighan) 개념 AWK는 텍스트가 저장되어 있는 파일을 원하는 대로 필터링하거나 추가해주거나 기타 가공을 통해서 나온 결과를 행과 열로 출력해주는 프로그램 이다. 좀더 쉽게 말하자면, awk는 "awk programming language"라는 프로그래밍 언어로 작성된 프로그램을 실행 하는 명령어라고 이해하면 좋다. 즉, 리눅스에서 쉘 스크립트(Shell Script)로 작성된 파일이 리눅스 쉘(Shell)에 의해 실행되는 것처럼, awk가 "awk programming language" 문법으로 작성된 코드를 이해하고 실행 한다는 의미로 보면 된다. 명령어 예를 들자면, 다음과 같이 a.txt 파일이 있다고 하자. 파일내용은 다음과 같다. 1 2 3 4 만일..

카테고리 없음 2023.02.08

(shell script)expr & bc

expr & bc 명령어 쉘에서는 숫자와 문자를 구분하지 않기 때문에 여타 프로그래밍 언어 처럼 숫자 연산이 간단하지 않다. 쉘에서 숫자를 연산하는 방법은 대표적으로 expr 와 bc 가 있다. expr은 bash 내장 명령어로 정수만 연산 가능하다. bc는 복잡한 공학용 산술과 실수 계산이 가능하다. 여기까지 보면, 차라리 bc만 쓰면 될것을 굳이 expr을 알아야 하는지 의문이겠지만, 정수 연산이 많은 프로그래밍을 할 경우 내장 명령어인 expr을 사용하는것이 속도면에서 효율적이기 때문이다. expr 명령어 expr 명령은 정수 계산을 하기 위해 사용되는 명령이다. 계산식을 쓸 때 연산기호와 정수 사이 반드시 공백으로 띄어쓰기를 해야 한다는 주의 점이 있다. $ expr 4 \* 3 12 $ expr..

쉘스크립트 예제

구구단 출력 BASH #!/usr/bin/bash for i in {2..9}; do # 2에서 9까지 레인지 리스트를 순회 for j in {1..9}; do # 1에서 9까지 레인지 리스트를 순회 echo "$i * $j = $((i*j))" # $(( )) 는 괄호안의 문자를 산술 처리 해준다. done done 프로그램의 실행시간 측정 아래의 프로그램은 인자로 주어진 명령을 실행하고 걸린시간을 나노초 단위로 측정한다. BASH #!/bin/bash # 만일 사용자가 인자를 주지 않았을 경우.. ($#는 인자의 모든 갯수) if [ $# -eq 0 ]; then echo "Input the filename, please..." exit 0 # 스크립트 종료 fit Command=$1 # 인자를 변수..

(shell script) 문자열 패턴 비교

문자열 패턴 비교 패턴 비교는 일종의 문자열을 연산하는 것으로 특정한 pattern을 놓고 변수의 문자열 값이 일부분이라도 이 패턴과 일치하는지 검사할 때 쓰인다. 이 패턴에는 와일드카드 문자 ( *, ?, [ ] 를 포함한 문자 세트)를 포함해도 된다. ${#var} 변수 var가 가지는 문자열의 길이를 구한다. ${var:-word} 1. 변수 var의 값이 null이 아니면 : var의 값을 반환, var의 값은 변하지 않는다. 2. 변수 var의 값이 null이면 : word의 값을 반환, var의 값은 변하지 않는다. ${var:=word} 1. 변수 var의 값이 null이 아니면 : var의 값을 반환, var의 값은 변하지 않는다. 2. 변수 var의 값이 null이면 : word의 값을 ..

쉘 배열문이란?

쉘 배열문 배열 생성 / 추가 BASH #!/bin/bash # 배열의 크기 지정없이 배열 변수 선언 # 굳이 'declare -a' 명령으로 선언하지 않아도 바로 배열 변수 사용 가능함 declare -a array arr=("test1" "test2" "test3") # 배열 선언 및 지정 echo ${arr[0]} # test1 # 기존 배열에 1개의 배열 값 추가 3가지 방법 arr[3]="test4" arr+=("test5") arr[${#arr[@]}]="test6" # 배열 길이를 인덱스로 사용해 push echo ${arr[@]} # arr의 모든 데이터 출력 echo ${arr[*]} # arr의 모든 데이터 출력 echo ${#arr[@]} # arr 배열 길이 출력 echo ${arr..

쉘 조건문 - if문

쉘 조건문 if 문 배쉬의 if문의 특이한 점은 fi 와 대괄호[ ] 이다. 여타 언어와 달리 중괄호를 안쓰기 떄문에 fi로 if문의 끝을 알려주어야 하며, 주의해야할 점은 if문 뒤에 나오는 대괄호 [ ] 와 조건식 사이에는 반드시 공백이 존재해야 한다. if [ 값1 조건식 값2 ] then 수행1 else 수행2 fi # 가독성 좋기 위해 then을 if [] 와 붙여쓰려면 반드시 세미콜론 ; 을 써야한다. if [ 값1 조건식 값2 ]; then 수행1 else 수행2 fi 비교 연산 문자1 = 문자2 # 문자1 과 문자2가 일치 (sql같이 = 하나만 써도 일치로 인식) 문자1 == 문자2 # 문자1 과 문자2가 일치 문자1 != 문자2 # 문자1 과 문자2가 일치하지 않음 -z 문자 # 문자가..

vi (vim) 에디터에서 문자열 치환

vi (vim) 에디터에서 문자열 치환하는 방법 1. 명령어 기본 : 시작행,끝행s/원래문자열/변경문자열/옵션 기본적인 명령어는 위와 같습니다. 문자열은 '정규 표현식'도 사용 가능하며, 문자열에 슬래시 ('/') 를 쓰고 싶으면 앞에 역슬래시('\')를 붙여주시면 됩니다. (예 - 1~10 행의 'http://' 를 'https://' 로 바꾸고 싶다면, ':1,10s/http:\/\//http:\/\//' ) 2. 시작 행, 끝 행 지정 방법 (1) 기본적으로 숫자로 표현이 가능합니다. ex) 1~10 행 사이에서 치환 - : 1, 10 (2) 현재 커서가 위치한 행은 '.' 으로 표현이 가능. (3) 마지막 행은 '$'로 표현 가능 ex) 현재 행 ~ 마지막 행 까지 - :.,$s (4) %는 전체..

Linux 2023.01.15
728x90