Bash : 텍스트 열을 행으로 변환

다음과 같은 텍스트 파일이 있다고 가정합니다. 배포판.txt 다음과 함께 :

archlinux
데비안
우분투
티셔츠
중절모
슬랙웨어
젠투

그리고 우리는 그것을 다음과 같이 바꾸고 싶습니다.

archlinux 데비안 우분투 카오스 페도라 슬랙웨어 젠투

이를 달성하기 위해 우리는 for 루프에코 -n :

for i in `< distros.txt`; do echo -n ${i}" ";done; echo ""

완료, 이것은 트릭입니다 🙂

이것은 터미널에 원하는 결과를 보여줄 것입니다. 반면에 다른 .txt 파일에 저장하고 싶다면 출력을 리디렉션합니다.

for i in `< distros.txt`; do echo -n ${i}" ";done; echo "" > distros-nuevas.txt

그리고 짜잔 🙂

글쎄, 나는 당신이 유용하다고 생각하기를 바랍니다. 정규식으로도 수행 할 수 있음을 명확히하는 데 유효하지만 방법은 모르겠지만 정규식을 사용하면 거의 모든 것을 할 수 있습니다 hahaha.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   호세 리카르도

    더 쉬움 :

    고양이 distros.txt | xargs -n 100

  2.   ¿

    .odt에서 각 페이지에 2 개의 열이있는 경우 다음과 같이 읽습니다.

    1 페이지
    col.1 col.2
    2 페이지
    col.3 col.4

    각 열을 다른 열 아래로 가져 오려면 어떻게합니까?
    1열
    2열
    3열
    4열

  3.   Juant

    훨씬 쉽게:

    탭으로 구분하려면 :
    당신은 다음과 같이 작성합니다 : paste -s distros.txt
    당신은 얻는다 : archlinux debian ubuntu kaos fedora slackware gentoo

    공백으로 구분하려면 다음을 수행하십시오.
    다음과 같이 작성합니다. paste -s -d»»distros.txt
    당신은 얻는다 : archlinux debian ubuntu kaos fedora slackware gentoo

    쉼표로 구분하려면 다음을 수행하십시오.
    당신은 다음과 같이 작성합니다 : paste -s -d, distros.txt
    당신은 얻을 : archlinux, debian, ubuntu, kaos, fedora, slackware, gentoo

    페이스트, 고양이, awk 및 기타 친구들과 함께 약간의 독창성으로 인생을 복잡하게 만들지 않고 많은 유용한 조합을 만들 수 있습니다.

    Portalprogramas 수상을 축하합니다!

    1.    사냥꾼

      나는 sed, awk, cut, sort, uniq, 간단히 말해서 크림을 사용해 왔지만, 그것이 무엇을 할 수 있는지 보여줘서 고마워서 붙여 넣기에주의를 기울이지 않았습니다. Slds.

  4.   타브리스

    고양이 file.txt | xargs

    이익.

  5.   Cristianhcd

    나는 항상이 [조옮김]을 위해 엑셀을 사용하게됩니다 ... 매우 유용합니다.

  6.   브루노 카시오

    또 다른 변형 :

    고양이 distros.txt | tr«\ n»»«

  7.   호아킨

    각 댓글에 HaHaHa, 같은 일을하는 다른 방법!

  8.   호세 GDF

    그리고 그 반대의 경우는 어떨까요? 즉, 공백으로 구분 된 단어 행을 열로 변환합니다.

    1.    Juant

      이번에는 awk로도 쉽습니다.
      필드가 가장 일반적인 탭이나 공백으로 구분되어 있고 (쉼표 나 다른 것으로 표시되는 경우 고려하여 표시해야 함) 파일에 다음이 포함되어 있다고 가정합니다. archlinux debian ubuntu kaos fedora slackware gentoo

      awk는 우리가 원하는 필드를 직접 제공하므로 끝까지 하나씩 반복적으로 보여 주어야합니다. NF (필드 수)의 값이므로 7 개의 필드가 있습니다. 카운터 i = 1로 설정하여 첫 번째 필드 ($ 1)를 표시하고 마지막 필드 (NF)를 초과하지 않고 XNUMX 단위 (i ++ 사용)만큼 증가시켜야합니다.

      awk '{for (i = 1; i <= NF; i ++) {print $ i}}'distros.txt

      1.    에테메난키

        기억하기 쉽고 두 감각 모두에 효과가있는 가장 실용적인 방법은 다음과 같습니다.
        고양이 distros.txt | tr '\ n' ''← 수평 표준 출력 (이미 위에서 논의 됨)
        고양이 distros.txt | tr '' '\ n'← 수직 표준 출력

        안녕하십니까!

    2.    Juant

      확실히 Etemenanki의 솔루션은 두 가지 방법 모두 행에서 열로 또는 그 반대로 간단한 변환에만 관심이 있다면 괜찮습니다.

    3.    호세 GDF

      응답 해 주셔서 감사합니다. 다음 스크립트에서 연습 해 보겠습니다.

      인사말.

  9.   가토

    다음과 같은 경우에만 :
    echo $ (고양이 distros.txt)

  10.   앤슨 로드리게스

    더 쉽게 :
    awk '{printf $ 0 ″«}'distros.txt