리눅스 리다이렉션에서 ^H 따위의 문자가 추가로 붙는 것

sangjun11316의 이미지

안녕하세요,

방금 qsub 매뉴얼을 보려는데 줄이 너무 많아 좀 검색하며 보고싶어 리다이렉션을 했더니

$ man qsub > qsub_man.txt

매뉴얼 내용이 깨져서 qsub_man.txt에 들어가더군요 (첨부 '리다이렉션 볼드체' 참조).

조금 보니 man 에서 볼드체 처리된 부분들이 ^H 문자와 함께 두번씩 적혀있더군요.

(ex. 진한 N -> N^HN, 진한 NAME -> N^HNA^HAM^HME^HE)

규칙성이 눈에 보이기 때문에 아래와 같은 방식으로 ^H 와 그에 따라오는 문자 하나만 제거해주면 될 거라 생각하고 아래와 같은 것들을 시도해봤는데, ^H 가 문자열이 아닌 어떤 Tab 문자나 그런애들로 인식이 되는지 (첨부파일과 같이 파란색으로 나타납니다) 문자열 치환으로는 잘 해결이 안되더라고요.

(vi 편집기 안에서)
:%s/^H.//
# ^H와 그 뒤에 따라오는 문자 하나를 없애는걸 생각하고 입력

:%s/(\r)H.//
# 검색해보니 ^ 표시가 Ctrl을 의미하는 애라는 포스팅이 보여 시도

:%s/(\^)H.//
# 혹시 해서 시도

계속해서 'Pattern not found' 가 뜨는거로 보면 ^H 가 vi 안에서 아예 문자열로 인식되지 않는 것 같은데, 이런 경우 어떻게 제대로 고칠 수 있을지 궁금해서 질문드립니다.

File attachments: 
첨부파일 크기
Image icon 리다이렉션 볼드체.png72.08 KB
익명 사용자의 이미지

거기서 보이는 ^H는 문자열 ^H가 아니라 ascii control code 0x08(BS, Backspace)입니다.

https://www.windmill.co.uk/ascii-control-codes.html

\r을 시도해 보신 걸 보니 아래 링크를 보신 듯하군요.

https://stackoverflow.com/questions/5843495/what-does-m-character-mean-in-vim

근데 그건 ^M = 0x0D = (CR, Carriage return) = /r 이라서 그런 거고요.

이 경우는 ^H 이므로 Ctrl + V -> H 으로 입력해 주면 됩니다.

익명 사용자의 이미지

사족: A^HA가 왜 A인지에 대해서는 재미있는 역사적 배경이 있습니다. 궁금하시면 직접 찾아보세요.

힌트는, 아까 말씀드렸다시피 ^H는 Backspace라는 겁니다.

sangjun11316의 이미지

역시 단순한 문자열이 아니라 어떤 문장부호를 나타내는 친구였군요. 답변해주신 분이 아니셨으면 한참 헤맸겠네요. 주말에 친절한 답변 감사드려요 ㅎㅎ 덕분에 잘 해결했습니다.

관련 역사에 대해서도 흥미로워서 조금 구글링을 해 봤는데, 쉽게 나오지는 않는 것 같네요. 앞으로 공부하다보면 어쨌거나 마주치게 될 친구들 같으니, 천천히 알아가는 거로 하겠습니다 ㅎㅎ

답변 감사합니다!

익명 사용자의 이미지

힌트를 하나 더 드리자면 타자기입니다.

(이 정도 가면 거의 정답인데요)

jick의 이미지

man이 좀 무조건 각종 control code를 넣는 경향이 있어서 텍스트 파일로 저장하기 좀 짜증나는데, 그럴 때 이렇게 해주면 좋습니다.

man man | col -b > man.txt

sangjun11316의 이미지

말씀해주신대로 하니 정말 깔끔하게 파일로 저장이되네요. col 이라는 명령어를 쓰는 방법도 있었군요. 좋은 것 가르쳐주셔서 감사합니다 ㅎㅎ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.