LINUX

포스트: 477|조회수: 0|TERM
Items

Posts

477 posts

[bash: awk] awk에서 문자열을 분할하여 배열(array)에 저장하기 (split)

반달가면|2017년 3월 9일

awk에서 문자열 작업을 할 때, 한 행의 문자열을 분할해서 배열에 저장할 수 있다. 예를 들어 한 문장이 있을 때 단어별로 쪼개서 배열의 원소로 저장하는 경우다. awk에서 제공하는 split 함수를 이용하면 된다. split 함수의 형식은 아래와 같다. split(문자열, 배열 이름, 구분자) 예를 들어 입력 받은 행($0)을 콜론(:) 기준으로 분할해서 배열 arr에 저장하고자 한다면 아래와 같이 된다. split($0, arr, ":") 배열의 원소번호(index)는 1부터 시작한다. 위의 예시에서 첫번째 원소가 arr[1]에 있다. 아래의 예시를 보자. # 문자열을 콜론을 기준으로 분할, 배열 arr에 저장한 후 세번째 원소만 출력 echo "a:b:c:d:e" | aw

[bash: awk] 현재 행에서 특정 문자열이 존재할 때 바로 이전 행을 출력하기

반달가면|2017년 2월 27일

텍스트 파일에서 특정 문자열을 검색해야 하는데, 해당 문자열이 출현했을 경우 바로 이전 행만 출력해야 할 경우에 awk를 이용해서 가능하다. 조건문을 사용해야 하므로 좀 복잡하긴 하지만, 어쨌든 가능. 개인적으로 이 문제에 대한 고민은 여러 행으로 이루어진 텍스트 파일에서 특정 부분을 따옴표(")로 묶어주어야 하는 문제 때문에 시작되었다. 어떤 형태의 문제였는지 예를 들자면 아래와 같다. john과 jane의 대화를 기록한 my_dialog.txt 파일의 내용이 아래와 같은 상황이다. # 파일 내용 확인 cat my_dialog.txt john: hello, jane. how are you? jane: not bad, john. thanks 위의 내용을 아래와 같이 바

[bash: source] 스크립트에서 환경설정 파일 활용하기

반달가면|2017년 2월 20일

셸 스크립트에서 환경설정 파일을 읽어서 변수값을 지정하고 싶을 때 source 명령을 활용할 수 있다. source 명령은 현재의 shell 프로세스에서(즉, fork하지 않고) 지정된 파일에 있는 명령을 실행한다. 아래의 예시를 보자. # test.ini 파일 내용 확인 cat test.ini MY_VALUE=10 MY_NAME="john" # test.ini 파일의 내용을 현재 shell에서 실행 source test.ini # 변수 설정 결과 확인: MY_VALUE, MY_NAME 출력 echo $MY_VALUE 10 echo $MY_NAME john 변수 MY_VALUE, MY_NAME의 값을 test.ini 파일에서 정하고, 이것을 읽어서 실행함으로써 변수값이 설

리눅스에서 루트(root)에 의한 ssh 접속 허용

반달가면|2017년 2월 15일

데스크탑 리눅스 배포판의 경우 기본적으로 루트에 의한 ssh 접속을 막도록 설정되어 있는 경우가 꽤 있는데, 루트 계정을 허용해야 한다면 /etc/ssh/sshd_config 파일을 편집해서 관련 설정을 변경해야 한다. 우분투 계열 배포판 기준이나 다른 배포판도 비슷할 것이라 생각된다. 터미널창에서 아래와 같이 작업. 만약 ssh 데몬이 설치되어 있지 않다면 설치부터 해 주자. 데비안/우분투 계열 배포판 기준이다. # ssh 데몬 설치 sudo apt-get install ssh 이제 /etc/ssh/sshd_config 파일을 루트 권한으로 편집한다. sudo vi /etc/ssh/sshd_config 파일 내용중에 PermitRootLogin 항목을 찾아서 아래와 같이 변경