IT/리눅스 2025. 2. 7.
sed 로 # 뒤 문자열 제거하기, 즉 주석 같은 구문 제거
🔍 sed 's/#.*//'의 동작 방식이 명령어는 문자열에서 # 이후의 모든 내용을 삭제하는 역할을 해.✅ sed 기본 문법sed 's/패턴/변경할문자열/옵션's → substitute(치환) 명령어패턴 → 변경할 문자열을 찾기 위한 정규 표현식변경할문자열 → 찾은 패턴을 어떤 문자열로 변경할지 정의 (// 이면 제거)옵션 → g를 추가하면 여러 개의 패턴을 한 번에 변경 가능🚀 sed 's/#.*//' 상세 분석sed 's/#.*//'# → # 기호를 찾음 (주석 시작 부분).* → # 이후의 모든 문자(.)를 0개 이상(*) 찾음// → #부터 끝까지 찾은 문자열을 빈 문자열로 치환 (즉, 삭제)🛠 예제 테스트🔹 기본적인 동작echo "MAX_PARALLEL = 4 # 최대 동시 실행 개수"..
IT/리눅스 2025. 2. 6.
쉘스크립트 - echo 로 멀티 라인 문자열 저장하는 방법 EOF
🔍 cat $temp_script 의 동작 방식이 구문은 "Here Document" (히어 문서) 라고 불리는 쉘 스크립트에서 여러 줄을 파일에 직접 쓰는 방법이야.즉, EOF라는 마커를 기준으로 여러 줄의 내용을 하나의 파일로 저장할 수 있어.✅ cat $temp_script 의 동작 과정cat → cat 명령어를 실행하지만 입력을 직접 제공(Here Document 방식).> $temp_script → 출력을 $temp_script라는 파일에 저장.EOF → 입력이 끝나는 지점을 명확히 지정.📌 예제cat script.csh#!/bin/cshecho "Hello, this is a test script"EOF➡ script.csh 파일이 다음과 같이 생성됨:#!/bin/cshecho "H..
IT/리눅스 2025. 1. 22.
grep 으로 문자열 검색하기
grep 명령은 텍스트 파일이나 출력에서 특정 문자열을 검색할 때 사용됩니다. 다양한 옵션과 조합으로 강력하고 유연하게 문자열을 찾을 수 있습니다. 아래에 주요 사용법과 옵션들을 소개합니다.1. 기본 사용법특정 문자열 검색grep "검색할_문자열" 파일명예: file.txt에서 error를 검색grep "error" file.txt2. 주요 옵션(1) 대소문자 무시 (-i)grep -i "검색할_문자열" 파일명대소문자를 구분하지 않고 검색.예: Error, ERROR, error 모두 검색.(2) 라인 번호 출력 (-n)grep -n "검색할_문자열" 파일명검색된 문자열이 포함된 라인의 번호를 출력.예:grep -n "error" file.txt출력:12:error found35:critical erro..
IT/리눅스 2025. 1. 22.
split - 용량 큰 로그 파일, 텍스트 파일 나누기
네, split 명령은 이미 생성된 파일을 분할하는 데 사용됩니다. 즉, tee로 생성된 로그 파일을 작성 중에 분할하는 것은 불가능하며, 로그 파일이 완전히 생성된 후에야 split 명령을 사용할 수 있습니다.split 동작 방식파일 크기를 기준으로 분할:split -b 100M large_file.txt small_file_-b 100M: 각 분할된 파일의 크기를 최대 100MB로 제한.결과 파일: small_file_aa, small_file_ab, ...줄 수를 기준으로 분할:split -l 1000 large_file.txt small_file_-l 1000: 각 분할된 파일에 최대 1000줄 포함.결과 파일 이름 지정:split -b 50M large_file.txt --additional-s..
IT/리눅스 2025. 1. 13.
tcl - regsub 문자열 치환 함수
regsub -all "{|\}" $analyze_vcs_filelist_tmp ""는 TCL에서 문자열 내 특정 패턴을 찾아 치환(replace)하는 명령입니다. 이를 단계별로 자세히 설명하겠습니다.regsub 명령어의 기본 구조regsub ?-all? pattern input replacement ?outputVar?-all: 일치하는 모든 항목을 치환합니다. 생략하면 첫 번째 일치 항목만 치환됩니다.pattern: 치환하려는 문자열을 정규 표현식(regular expression)으로 지정합니다.input: 패턴 검색과 치환을 수행할 원본 문자열입니다.replacement: 패턴이 일치할 때 대체할 문자열입니다.outputVar: 치환 결과를 저장할 변수(옵션). 생략하면 치환된 문자열이 반환됩니다..
IT/리눅스 2025. 1. 9.
쉡 스크립트 if []; then 에 등장하는 세미콜론의 의미?
원래 if 와 then 사이에 엔터가 필요하는 구나. 단순한 lex를 사용해서 그런듯. 아무튼 ;가 한줄로 쓸때는 꼭 필요합니다.쉘 스크립트에서 if []; then fi 구조에서 세미콜론(;)의 의미는 명령의 끝을 나타내는 것입니다.세미콜론의 역할명령 구분자:쉘 스크립트에서 한 줄에 여러 명령을 작성할 때, 명령을 구분하기 위해 세미콜론을 사용합니다.예를 들어:echo "Hello"; echo "World"위 코드는 두 개의 echo 명령을 한 줄에 실행하도록 작성한 것입니다.then 키워드와의 연결:쉘에서 if 구문의 조건 평가와 then 키워드는 기본적으로 새 줄로 구분됩니다.하지만 한 줄로 작성하고 싶을 때, 세미콜론으로 명령의 끝을 명시하여 구분합니다.예:if [ condition ]then ..
IT/리눅스 2025. 1. 9.
쉡 스크립트에서 환경변수 값 비교시 null, empty 체크를 위한 팁
정말 간단하고도 놀라운 팁이다. 원래 비교하고 싶은 환경변수가 실제로 없을 수 있으니까, 앞에 임의의 문자를 붙이고 가져와서, 비교할 때 임의의 문자만 남아 있으면 비어 있는 것을 판단하는 아주 유용한 팁이다. 아래 자세한 내용을 살펴보자. 변수가 비어 있거나 정의되지 않았을 때, 단순히 if [] 구문에서 사용되면 쉘에서 에러가 발생할 수 있습니다. if [ "x$_ROOT" == "x" ]; then 구문의 "x$_ROOT"는 쉘 스크립트에서 변수가 비어 있거나 정의되지 않은 경우를 안전하게 처리하기 위한 관용적인 방법입니다.상세 설명:$_ROOT:환경 변수 _ROOT의 값을 참조합니다.만약 _ROOT가 설정되어 있지 않거나 빈 문자열이라면, $_ROOT는 빈 값("")으로 평가됩니다."x$_ROOT..
IT/리눅스 2024. 12. 5.
특정 이름의 폴더만 빼고 복사 하고 싶을 때 - rsync
find와 cp 명령어를 조합해서 특정 폴더를 제외하고 원본 디렉터리 구조의 일부만 유지하려면 --parents 옵션 대신 rsync 또는 find와 함께 상대 경로를 활용해야 합니다.방법 1: rsync 사용rsync는 기본적으로 디렉터리 구조를 유지하며 복사를 수행하므로 가장 간단한 방법입니다.rsync -av --exclude='csrc' --exclude='simv.daidir' /home/RTL/ ./RTL/옵션 설명:-a: 원본 파일의 권한과 시간 정보를 유지.-v: 진행 상황을 출력.--exclude='csrc': 이름이 csrc인 폴더 제외.--exclude='simv.daidir': 이름이 simv.daidir인 폴더 제외./home/RTL/: 원본 디렉터리../RTL/: 현재 경로에 R..
IT/리눅스 2024. 11. 28.
현재 Shell 정보 확인하기
현재 bash 인지 csh 인지 자꾸 헷갈리네. 현재 쉘 정보를 보고 싶다면, 아래 3가지 방법으로 /home> echo $SHELL /bin/csh/home> echo $0csh/home> ps PID TTY TIME CMD 5150 pts/397 00:00:00 csh17956 pts/397 00:00:00 ps https://hianna.tistory.com/870 [Linux] 현재 Shell 확인하기Linux에서 현재 이용중인 Shell을 확인하는 방법은 여러 가지가 있다. 그 중 몇가지를 정리해보았다. 1. echo $SHELL $SHELL 변수는 default shell에 대한 정보를 가지고 있다. 2. echo $0 이 명령어는 현재 실행hianna.tistor..
IT/리눅스 2024. 8. 28.
vi - gf 로 파일열기시 환경변수 있어도 가능하게
vi에서 'gf'를 치면 cursor가 가리키고 있는 file로 jump를 하게된다.이 기능은 보통 debugging시 log 파일에서 error 또는 warning message가 떴을 때 사용하게 된다.https://sunshowers.tistory.com/80 문제점은 이러한 gf이 기능을 쓸 때, 대상 파일 경로 안에 ${project_name}과 같이환경 변수(environment variable)이 포함되어 있으면 사용할 수 없다는 점이다. 이런 메세지에서 gf를 쓰면vi는 '${project_name}/temp.txt' 라는 file을 찾을 수 없다고 message를 띄운다. 이러한 문제점은 .vimrc에서 file이름 구분법을 설정함으로써 해결할 수 있다. set isfname+=$,{,}..
IT/리눅스 2024. 8. 28.
윈도우에서 리눅스로 파일 이동시 ^M 문자 제거 방법
텍스트 파일에 포함된 도스 스타일의 줄 끝 문자(^M, 즉 carriage return, \r)를 제거하려면 여러 가지 방법을 사용할 수 있습니다. 주로 이 문제는 Windows에서 작성된 파일을 Unix/Linux 시스템에서 열 때 발생합니다. Unix/Linux는 줄 끝을 나타내는 데 개행 문자(\n)만 사용하지만, Windows는 carriage return과 개행(\r\n)을 함께 사용하기 때문입니다.다음은 ^M 문자를 제거하는 방법들입니다:1. dos2unix 명령어 사용가장 간단한 방법은 dos2unix 유틸리티를 사용하는 것입니다. 이 도구는 파일에서 Windows 스타일의 줄 끝을 Unix 스타일로 변환해줍니다.dos2unix filenamefilename: 변환할 파일의 이름입니다.이 명..
IT/리눅스 2024. 8. 19.
윈도우 WSL 에서 csh 사용하기
WSL(Windows Subsystem for Linux)에서 C shell(csh)을 실행하는 방법을 안내해드리겠습니다. 1. WSL 설치먼저 WSL이 설치되어 있어야 합니다. 아직 WSL을 설치하지 않았다면 다음 단계를 따르세요:WSL 설치관리자 권한으로 PowerShell을 실행합니다.다음 명령어를 입력하여 WSL을 설치합니다:wsl --installWSL 배포판 설치설치할 Linux 배포판(Ubuntu 등)을 선택하고, Microsoft Store에서 설치합니다.2. csh 설치이제 WSL 배포판(Ubuntu 등)에서 csh을 설치하고 실행할 수 있습니다.WSL에서 터미널 실행WSL을 설치하고 원하는 배포판(Ubuntu)을 설치한 후, 해당 배포판의 터미널을 실행합니다.Windows의 명령 프롬프..
IT/리눅스 2024. 7. 12.
Vim - 파일 오픈 여러개 한 이후 화면 돌아가기
Vim에서 파일을 오픈한 후 이전 파일로 이동하는 방법은 다음과 같습니다:기본 방법: :e # 명령어 사용Vim에서 다른 파일을 열 때마다 현재 파일의 이름이 내부적으로 기록됩니다. 이 기록을 이용해 이전 파일로 이동할 수 있습니다.:e # 명령어를 입력하면 이전에 열었던 파일로 돌아갑니다.파일 탐색 기록을 활용하는 방법: :b 명령어 사용여러 파일을 열고 닫을 때, 파일 탐색 기록을 활용하여 쉽게 이전 파일로 이동할 수 있습니다.:ls 명령어를 입력하면 현재 열린 파일 버퍼 목록을 확인할 수 있습니다.:b N 명령어를 입력하여 버퍼 번호 N에 해당하는 파일로 이동할 수 있습니다.대체 파일로 이동: CTRL-^ 또는 CTRL-6 사용CTRL-^ (또는 CTRL-6) 단축키를 사용하면 마지막에 열었던 파일..
