안녕하세요. 코딩개입니다. 문자열을 다룰 일은 생각보다 많은데요. 리눅스에서 tr 명령어도 꽤 유용하게 쓰입니다. 간단하게 예제를 보면서 알아보도록 할게요. tr은 translate 혹은 delete character라고 합니다. 문자들을 지우거나, 다른 것으로 바꾸는 것인가 봅니다. 사실 저는 translate를 번역하다라는 뜻만 있는 줄 알았는데, 그게 아닌가 봅니다? 몇 가지 옵션들이 있는데요. -c는 complement를 의미합니다. 보수 할 때 많이 들어보셨을 텐데요. 반전을 의미합니다. 예를 들어 세트 1이 digit라고 해 봅시다. digit의 반전은 무엇인가요? digit이 아닌 것들이 됩니다. 예를 들자면 'a', 'b', ' ' 등이 이 집합에 속합니다. 다음에 -s는 여러 번 연속해서..
OS/리눅스 검색 결과
저는 우분투를 쓰고 있어요. 저번 시간에 openjdk를 설치하면서 apt search 명령어를 이용했는데요. 어떻게 쓰는지 간단하게 알아보겠습니다. 먼저 apt에 대한 설명을 보면, package management system의 CLI 인터페이스라고 되어 있어요. 패키지 관리를 할 때 많이 쓰는 명령어인가 봅니다. 이 중에서, 제가 jdk를 설치할 때 썼던 search를 보겠습니다. 이것을 보면, regex를 이용해서 패키지를 찾을 수 있다고 되어 있어요. 정규 표현식을 이용해서 찾을 수 있다는 말은 ^openjdk 이런 식으로 패턴을 먹일 수도 있다는 의미입니다. 저것의 의미는 openjdk로 시작하는 패턴을 의미합니다. 그러면, apt search elastic은 elastic 패턴을 가지는 패키..
저번에 update-alternatives 명령어를 쓰면서, 이런 의문이 들었습니다. javac의 버전? 비슷한 것을 선택할 수 있는 것은 어디서 정보를 얻어올까? 보통 파일을 열고 닫는 연산을 하게 되면, open 이나 close 같은 시스템 콜 함수는 호출하게 되어 있으니, strace로 간단하게 보도록 하겠습니다. strace update-alternatives --config javac를 쳐 보겠습니다. 그러면 execve 같은 시스템 콜 함수들이 잔뜩 보일 텐데요. 제가 관심있는 것은 open 계열의 함수들입니다. 쭉 보니까, /var/lib/dpkg/alternatives/javac 파일을 열어버리는 게 보입니다. 제가 데비안 계열의 우분투를 쓰고 있긴 하니, 이해는 가네요. /var/lib/..
안녕하세요. 오랫만입니다. 제 우분투 서버에 설치되어 있는 java랑 javac 버전은 8인데요. 이를 11로 어떻게 바꾸었는지 보도록 하겠습니다. 먼저, Main.java입니다. Map.of 메서드가 보이는데요. 문서를 보면 9 버전부터 적용되는 메서드라고 되어 있어요. 이 메서드가 리턴하는 것은 immutable map이라고 하는데요. Main.java를 컴파일 해 보면, of 라는 것을 찾을 수 없다는 에러가 나옵니다. 왜 그럴까요? java랑 javac의 버전이 1.8이였기 때문입니다. 저 메서드는 1.9에 추가되었으니 java11로 업데이트를 해 보겠습니다. 저는 우분투를 쓰고 있으니, apt search를 이용해서 openjdk가 들어가는 패키지를 모두 찾도록 하겠습니다. 보니까 제가 찾는 것..
안녕하세요. 이번 시간에는 리눅스 sort 명령어를 배워보면서 정렬에 대해서 간단하게 이해해 보겠습니다. man 페이지에서 언급하고 있는 로케일에 관한 warning은 이 글에서 다루지 않겠습니다. 몇 번 삽질을 해 봐야 아 로케일이 이런 거라는 것이 와 닿지 않을까 싶어요. 혹시나, 보완할 부분이나 잘못된 부분이 있다면 댓글로 남겨주시면 감사히 받겠습니다. 1.in의 1번째 줄 부터 10번째 줄 까지는 이런 내용들이 있어요. 요구 사항이 하나 들어왔는데요. 공백을 기준으로 필드를 나눌 때, 1번째 필드 오름차순으로 정렬하려고 해요. 단, 필드에는 수가 있으니까, 수가 증가하는 순서대로 정렬이 되어야 합니다. 옵션을 찾아 보니, KEYDEF라는 것이 보여요. F[.C][OPTS][,F[.C][OPTS]]..
최근댓글