awk: 줄 단위로 텍스트를 필드로 쪼개 처리하는 패턴-액션 언어
awk는 입력을 레코드(줄)와 필드(열)로 나누어 "패턴 { 액션 }" 규칙을 적용하는 텍스트 처리 언어다. 로그, CSV, 명령어 출력처럼 열 구조가 있는 텍스트에서 특정 열 추출, 조건 필터링, 합계·평균 같은 집계를 한 줄 명령으로 수행할 수 있다. 파이프라인에서 grep과 cut으로 부족한 부분을 채우는 도구로 자주 쓰인다.
Read articleTYLER SONG / 2026
개발하면서 배운 것과 실험한 내용을 기록합니다.
awk는 입력을 레코드(줄)와 필드(열)로 나누어 "패턴 { 액션 }" 규칙을 적용하는 텍스트 처리 언어다. 로그, CSV, 명령어 출력처럼 열 구조가 있는 텍스트에서 특정 열 추출, 조건 필터링, 합계·평균 같은 집계를 한 줄 명령으로 수행할 수 있다. 파이프라인에서 grep과 cut으로 부족한 부분을 채우는 도구로 자주 쓰인다.
Read article↗sed는 입력을 한 줄씩 읽어 편집 명령을 적용한 뒤 출력하는 스트림 에디터(stream editor)다. 치환(s), 삭제(d), 출력(p) 같은 명령과 주소(address) 지정으로 파일이나 파이프 입력을 비대화식으로 가공한다. 이 글에서는 동작 원리, 기본 명령, 실무에서 자주 쓰는 패턴과 GNU sed와 BSD sed의 차이를 다룬다.
grep은 파일이나 표준 입력에서 패턴과 일치하는 줄을 찾아 출력하는 리눅스 명령어다. 로그 분석, 코드 검색, 파이프라인 필터링 등 개발 작업 전반에서 쓰인다. 기본 정규표현식(BRE), 확장 정규표현식(ERE), 고정 문자열 검색의 차이와 자주 쓰는 옵션을 예제로 정리한다.
Reward Model은 "이 응답이 얼마나 좋은가"를 숫자 하나(scalar)로 내놓는 모델이다. 사람이 고른 chosen/rejected 쌍만 있으면, 두 점수의 차이를 시그모이드에 넣는 Bradley-Terry 가정과 pairwise ranking loss로 학습할 수 있다. 오늘은 작은 모델에 value head를 붙여 직접 학습하고 선호 정확도를
find는 지정한 디렉터리부터 하위 트리를 재귀적으로 순회하면서 이름, 크기, 수정 시각, 타입 같은 조건에 맞는 파일을 찾아 주는 리눅스 명령어다. 조건식(expression)을 왼쪽에서 오른쪽으로 평가하고, 일치한 항목에 대해 출력이나 삭제, 명령 실행 같은 동작(action)을 수행한다. 기본 사용법과 실무에서 자주 쓰는 패턴, 공백 파일명 처리 같은
rm은 파일 시스템에서 파일 이름(디렉터리 항목)과 inode의 연결을 끊는 리눅스 명령어다. 휴지통 없이 즉시 삭제되므로 옵션의 의미를 정확히 알고 써야 한다. 이 글에서는 rm의 동작 원리, 주요 옵션, 안전하게 쓰는 방법을 정리한다.
mv는 파일이나 디렉터리를 다른 경로로 옮기거나 이름을 바꾸는 리눅스 명령이다. 같은 파일시스템 안에서는 데이터 복사 없이 디렉터리 항목(directory entry)만 수정하므로 크기와 무관하게 빠르게 끝난다. 파일시스템이 다르면 복사 후 삭제로 동작하며, 덮어쓰기 위험이 있어 -i, -n 같은 옵션을 알아두어야 한다.
선호 데이터는 하나의 질문(prompt)에 대해 "더 좋은 답(chosen)"과 "덜 좋은 답(rejected)"을 짝지어 놓은 데이터다. 오늘은 이 데이터를 사람·AI·규칙으로 어떻게 만드는지, 노이즈와 다양성이 왜 문제인지 배운다. 규칙 기반으로 합성 선호쌍을 직접 만들고 공개 선호 데이터셋도 불러와 구조를 확인한다.
cp는 원본 파일이나 디렉터리의 내용을 읽어 새로운 파일로 써 넣는 리눅스 기본 명령이다. 복사 결과는 원본과 독립된 별도의 inode를 가지므로 이후 한쪽을 수정해도 다른 쪽에 영향이 없다. -r, -p, -i, -n, -a 같은 옵션으로 디렉터리 복사, 속성 보존, 덮어쓰기 방지를 제어할 수 있다.