sed 명령시 개행문자 제거 하려면 어떻게 해야 할까요?

hak3y의 이미지

안녕하세요..
sed 명령으로 a.txt파일에서 아래와 같은형식을

-before-
aaa:
bbb
ccc:
ddd
eee:
ffff

-after-
aaa:bbb
ccc:ddd
eee:fff

이렇게 하고 싶어서
sed s/\:\n//g a.txt
sed s/\:\n/''/g a.txt
sed s/'\:\r\n'//g a.txt
등등 여럿 테스트 해보았는데 안되더군요..
반대로 개행추가하는건 되던데...삭제 하는하려면 어떤형식으로 해야하는지 알려주세요..

bushi의 이미지

음...
perl -p -e "s|:\n|:|" a.txt

sed 는 stream editor 입니다.
기본적으로 한 라인씩 입력받아서 끝의 \n 을 없앤 뒤 요청된 처리를 한 다음에 다시 \n 을 붙여서 출력해주는 방식이니 ... 힘들 것 같습니다.

OTL

hak3y의 이미지

=야간질주=

아 아침에 일찍 일어나셨네요?ㅎㅎ
아 perl이라는것도 있군요.`` 리눅스 연습생이라...
감사합니다 많은 도움되었습니다~~

=야간질주=

bushi의 이미지

한 줄로 만든 다음에 처리하고, 다시 여러 줄로 나누는 방법.

cat a.txt|tr ":\n" ": "|sed "s|: |:|g"|sed "s| |\n|g"

OTL

alee의 이미지

그냥 sed만으로 해결하는 방법입니다.

sed -e '/:$/N;s/\n/ /' a.txt
bushi의 이미지

/:$/N

: 로 끝나는 행이면 한 줄 더 읽어서 붙여라 라는 뜻인가요 ?

OTL

jg의 이미지

다음 줄을 읽어서 현재 패턴 공간에 넣으란 말이 됩니다.
따라서 현재 패턴 공간은
aaa:
bbbb

가 되기 때문에 여기서는 \n 을 처리할 수 있습니다.

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

뒷북의 이미지

sed -e '{N;s/\n//}'

sed 작동원리는 파일 내 문서를 한 줄씩 읽어들여서 처리한다
먼저 줄바꿈을 없애고 요청한 명령을 수행한 다음 다시 줄바꿈을 붙여서 출력
처리할 문장 내에 줄바꿈이 없기 때문에 아무리 해도 원하는 값을 얻을 수 없다

N을 앞에 붙이면 그 다음 줄까지 한 줄로 처리해서 읽어
첫 줄과 두번 째 줄 사이 줄바꿈은 살아있게 되서 접근이 가능
물론 두번 째 줄 줄바꿈은 제거되고 실행된다

요청한 명령 s/\n//을 실행한 뒤 줄바꿈을 붙여서 출력
결론 두줄씩 읽어들여서 요청 처리하고 줄바꿈해서 출력

N 옵션은 아래 글 참고하였습니다(패턴공간 액세스)
https://soooprmx.com/archives/8272

bushi / sed 처리방식을 알려줘서 고마워요

sort + tr + sed로 하다가 sort + sed로 줄여보려다가 여기까지 왔네요

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.