반응형

두 개의 텍스트 파일에 각각 아래와 같이 데이터가 있는 경우,


 number.txt

alphabet.txt 

1

2

3

4

5

6

A

B

C

D

E

F


두 파일을 열(column)을 추가하는 형태로 이어붙여야 할 때가 있다. 즉,


1    A

2    B

3    C

4    D

5    E

6    F


이런 형태의 파일을 만들고 싶을 때, paste 명령을 쓰면 된다.


$ paste number.txt alphabet.txt


열 간의 기본 구분자는 탭 문자 '\t'로 되어 있다.

만약 두 열 간에 구분자를 다르게 주고 싶으면 -d 옵션으로 명시한다.


// 공백으로 구분할 때

$ paste -d ' ' number.txt alphabet.txt


// 쉼표로 구분할 때 (csv 파일 포맷)

$ paste -d , number.txt alphabet.txt


참고로 paste 명령 왼쪽에 있는 파일의 라인 수가 오른쪽 파일보다 짧더라도 구분자 문자를 먼저 추가한 다음 내용이 붙기 때문에 구분자를 기준으로 하면 각 column이 독립적으로 데이터를 유지할 수 있다.


 number.txt

alphabet.txt 

1

2

3

4

5

6

A

B

C

D

E

F

G
H
I
J
K


예를 들어 위의 두 파일을 paste로 이어붙이면,


1    A

2    B

3    C

4    D

5    E

6    F

G

H

I

J

K


이렇게 숫자 밑에 알파벳이 오지 않도록 column을 유지하며 붙는다.



반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 16.04 (amd64)

Printer: HP Color LaserJet CP2025dn



<결론: 해결방법>


우분투 CUPS에서 목록에 보이는 기존 프린터를 삭제하고 같은 프린터를 새로 검색해서 설치한다. (...)



우분투 PC에서 연구실에 있는 네트워크 프린터에 30쪽이 넘는 pdf 문서를 인쇄하던 중, 앞부분 일부만 인쇄가 되고 프린터에서는 페이퍼잼도 없고 아무 오류 메세지도 없이 더이상 진행이 되지 않았다. 우분투에서 프린터 상태 메세지를 보니까 Filter failed 라는 메세지가 떠 있었다.



크롬 브라우저에서 pdf 파일을 직접 인쇄해 봐도 마찬가지였고, 우분투 기본 PDF 뷰어를 통해서 시도해 봐도 똑같았다.



인터넷에 찾아 보니 HP 프린터를 쓰는 사람들에게서 똑같은 문제가 예전부터 있어 왔고, 원인은 뭔지 모르는 경우가 많았다 [1, 2]. 버그 때문이라는 경우도 있고 [3], hp-plugin이 설치되지 않아서 그런 경우도 있는 듯 했다 [4].


일단은 대다수가 추천하는 의견대로 Printers (CUPS)에서 목록에 있는 기존의 프린터를 지우고 새로 설치했더니 오류 메세지가 사라지고 인쇄가 잘 되었다. CUPS는 유니티 런처에서 printers를 입력해서 실행한다.


추가로, 혹시 나중에 hp-plugin 일부가 없어서 똑같은 문제가 생길 가능성도 있으므로, hp-plugin 명령어로 플러그인도 (뭔지는 잘 모르겠지만) 설치해 두었다. hp-plugin은 그냥 터미널 화면에 명령어를 치고, GUI 대화창이 뜨면 recommened 옵션을 선택하고 Next를 눌러 주면 설치가 완료된다.




나중에 또 문제가 생긴다면 그 때 다시 문제를 해결한 다음에 본 문서를 수정해야겠다.



<참고자료>

[1] https://ubuntuforums.org/showthread.php?t=2137098

[2] http://askubuntu.com/questions/378873/cant-print-any-more-stopped-filter-failed

[3] https://bbs.archlinux.org/viewtopic.php?id=148850

[4] http://unix.stackexchange.com/questions/77139/filter-failed-from-hplip


반응형
블로그 이미지

Bryan_

,
반응형

Host OS: Ubuntu 16.04 (amd64)

Guest OS: Windows 10 Enterprise (64-bit)


KVM에서 윈도우10 가상 머신을 하나 만들어서 쓰고 있었는데, 최근에 아침에 확인할 때마다 계속 재부팅이 되어 있는 것이었다. 윈도우 업데이트 중에서 중요한 것들을 자동으로 설치하고 나면 보통 자동으로 재부팅이 되어 있긴 하지만, 최근에는 매일 아침마다 재부팅이 되어 있길래 의아했다.


업데이트 기록을 보니, 다른 업데이트는 다 되는데 버전 1607 (레드스톤)만 업데이트가 안되고 있었다. 직접 virt-viewer 화면을 통해서 수동으로 1607 업데이트를 진행하는 과정을 지켜보니, 업데이트 설치는 되는데 이후 재부팅할 때 블루스크린이 뜨면서 멈췄다가, 그 뒤에 다시 이전 버전으로 롤백해서 재부팅이 되었다.


윈도우10 업데이트 버전 1607이 다른 업데이트와는 달리 거의 서비스팩 수준으로 많은 것이 바뀌는 버전이라서 업데이트 과정에서 VM 설정과 충돌이 났을 지도 모르겠다.


무엇이 원인인지는 찾지 못했지만, 인터넷에 해결 방법은 있었는데 그게 VM의 CPU 쓰레드 개수를 1개로 설정해 놓고 업데이트를 진행하는 것이었다.

그래서 나도 가상 CPU 1개로 설정하고 업데이트를 하니 정말 문제없이 업데이트가 잘 되었다. =_=...


덕분에 매일같이 재부팅되어 있는 문제는 해결했으니 뭐...



<참고자료>

[1] Windows 10 VM crashes on reboot after installing 1607 update, 

https://forums.lime-technology.com/topic/50477-windows-10-vm-crashes-on-reboot-after-installing-1607-update/




반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 14.04 (amd64)


터미널에서 별 생각없이, 


cd smb://주소/원하는_디렉토리/


이런 식으로 접근을 시도해 봤는데, 안되었다.

/mnt, /dev 등을 뒤져 보았는데 잘 모르겠다.


윈도우처럼 그냥 드라이브마다 알파벳을 할당하듯이 되는 줄 알았는데 아니었군.. ㅠㅠ


찾아보니 어렵지는 않다. 단지 익숙한 경로가 아니었을 뿐.


우분투 14.04 기준에서,


cd /run/user/[숫자]/원하는_디렉토리/

이런 식으로 접근할 수 있다.

[숫자] 부분은 $ id -u 이므로 uid인 듯.





<참고자료>


[1] How do I navigate to a samba location I've mounted in Nautilus on the command line?, http://askubuntu.com/questions/33480/how-do-i-navigate-to-a-samba-location-ive-mounted-in-nautilus-on-the-command-li



반응형
블로그 이미지

Bryan_

,
반응형

Host OS: Ubuntu 14.04 (amd64)

Linux Container template: ubuntu



우분투 데스크탑과 우분투 서버에서는 문제가 없었지만, 우분투 템플릿으로 Linux Container (LXC)를 새로 생성하고 나서 새로운 패키지를 추가하려고 하면 add-apt-repository 명령이 없다고 에러 메세지가 나온다.


이 때 먼저 software-properties-common 패키지를 설치하고 나면 add-apt-repository를 쓸 수 있다.


$ sudo apt-get -y install software-properties-common




*참고


참고로 add-apt-repository 명령을 치면 무조건 사용자에게 추가할 것인지 한 차례 물어보고 엔터 키를 치면 진행을 하게 되는데, 여기서 사용자의 입력을 생략하고 무조건 실행되도록 하려면 맨 끝에 -y 옵션을 주면 된다. [1]


$ sudo add-apt-repository ppa:openjdk-r/ppa -y


위 예시는 openjdk 패키지를 설치하기 위한 ppa를 추가한 것이다.


일반적인 우분투 터미널에서는 결국 sudo privilege를 얻기 위해서 사용자 패스워드를 입력해야만 하지만, 적어도 기본적으로 root 계정으로 켜지는 Linux Container의 경우에는 저렇게 해 주면 자동으로 진행되므로 편한 점이 있다.


# add-apt-repository ppa:openjdk-r/ppa -y




<참고자료>

[1] http://askubuntu.com/questions/304178/how-do-i-add-a-ppa-in-a-shell-script-without-user-input




반응형
블로그 이미지

Bryan_

,