Introsed의 -i 옵션은 파일을 직접 수정(in-place)하는 기능을 제공한다. 하지만 GNU sed(주로 Linux에서 사용)와 BSD sed(macOS에서 사용) 간의 구현 방식 차이로 인해 같은 명령어라도 다른 결과를 초래할 수 있다. 그 차이는 다음과 같다:GNU sed: -i 뒤에 백업 확장자를 생략하면 원본 파일을 수정하며, 백업 파일을 생성하지 않는다.BSD sed: -i 뒤에 백업 확장자를 반드시 명시해야 한다. 백업을 원치 않으면 빈 문자열('')을 사용해야 한다.예제 비교sed -i 's/hello/bye/g' example.txtGNU sed: 파일을 백업 없이 수정.BSD sed: 's/hello/bye/g'을 백업 확장자로 해석하려다 에러 발생(invalid command ..
Development 195
IntroLibreOffice Calc를 사용하다 보면 셀을 병합해야 하는 상황이 자주 있다. 하지만 기본적으로 셀 병합 기능에 대한 단축키가 설정되어 있지 않아 매번 메뉴를 찾아 들어가거나 마우스로 클릭해야 하는 불편함이 있다. 문서작업할 때 하나하나 병합하다보면 화가나기도 한다.생산성을 높이기 위해 단축키를 설정해두면 아주 편리하다. 이번 글에서는 LibreOffice에서 셀 병합 기능을 단축키로 설정하는 방법을 알아본다.단축키 설정먼저 LibreOffice Calc를 실행한 다음, 상단 메뉴에서 Tools를 클릭한다. 드롭다운 메뉴에서 Customize를 선택한다.Customize를 선택하면 아래와 같은 창이 나타난다. 여기서 Keyboard 탭을 선택한다.이제 Keyboard 탭에서 단축키 설정하..
문제 상황최근 CentOS 7을 기반으로 한 프로젝트를 Docker 환경에서 빌드하려다가 문제가 발생했다. 빌드 과정에서 yum 명령어로 패키지를 설치하려고 하면 연결 오류가 발생하며 실패하는 상황이었다. 문제를 살펴보니 CentOS 7이 EOL(End of Life)에 도달하면서 공식 미러에서 패키지 다운로드가 더 이상 지원되지 않는 것이 원인이었다.CeontOS 7 베이스가 404를 응답한다CentOS의 EOL다들 알고 있는 것처럼 CentOS는 Red Hat Enterprise Linux(RHEL) 기반의 무료 운영 체제다. 하지만 최근 몇 년 동안 CentOS 프로젝트는 큰 변화를 겪었다. 특히 CentOS 8의 EOL 선언과 함께 CentOS Stream으로의 전환이 큰 논란을 불러일으켰다. C..
Intro여러 개의 서버를 관리하다 보면 환경 설정 파일들이 여기저기 흩어져 관리하기 복잡해진다. 특히 .zshrc 나 .bashrc 같은 셸 설정 파일은 여러가지 도구와 플러그인, alias를 관리하는 파일이라서 해당 파일 내용을 잃어버리거나 실수로 덮어쓴다면 굉장히 번거로워진다.개인적으로는 이 문제를 해결하기 위해 .zshrc 파일을 Git 리포지토리에 자동으로 백업하는 시스템을 만들었다. 한번 시스템을 구축해두니, 가끔 쉘 설정 파일 편집한 날에는 새벽에 자동으로 백업이 되어 있으니 매우 편해서 해당 내용을 공유해보려한다.이번 글에서는 cron 스케줄링을 활용해 각 서버에서 .zshrc 파일을 매일 자동으로 백업하는 방법을 차근차근 설명해 보겠다.Git 리포지토리리포지토리 생성 및 SSH 키 등록백..
IntroLeetCode 문제를 매일 풀이하는 개발자라면 공감할 텐데.. 문제 링크를 찾아가고, 클래스 이름을 짓고, 파일을 생성하는 과정이 굉장히 번거롭다.그래서 이를 간단히 처리하기 위해 leet.sh와 ClassNameFactory.java 두 가지 프로그램을 작성했다.이제 터미널에서 leet 한 줄만 입력하면, 오늘의 문제 링크가 뜨고, 문제풀이용 클래스 이름이 자동으로 클립보드에 복사된다.IDE에서 바로 붙여넣어 클래스를 생성한 뒤 코딩을 시작하면 된다. 비슷한 번거로움을 겪었던 개발자라면 한번 참고해보길 권한다.leet.bash문제 정보 가져오기leet.sh는 LeetCode의 GraphQL API를 이용해 오늘의 문제 정보를 가져온다.GraphQL API는 공식적으로 제공되지 않지만 Leet..