>

주어진 텍스트 파일에서 리눅스에서 공백을 탭으로 바꾸는 방법은 무엇입니까?


  • 답변 # 1

    unexpand (1) 프로그램 사용 <시간>

    UNEXPAND(1)                      User Commands                     UNEXPAND(1)
    NAME
           unexpand - convert spaces to tabs
    SYNOPSIS
           unexpand [OPTION]... [FILE]...
    DESCRIPTION
           Convert  blanks in each FILE to tabs, writing to standard output.  With
           no FILE, or when FILE is -, read standard input.
           Mandatory arguments to long options are  mandatory  for  short  options
           too.
           -a, --all
                  convert all blanks, instead of just initial blanks
           --first-only
                  convert only leading sequences of blanks (overrides -a)
           -t, --tabs=N
                  have tabs N characters apart instead of 8 (enables -a)
           -t, --tabs=LIST
                  use comma separated LIST of tab positions (enables -a)
           --help display this help and exit
           --version
                  output version information and exit
    . . .
    STANDARDS
           The expand and unexpand utilities conform to IEEE Std 1003.1-2001
           (``POSIX.1'').
    
    

  • 답변 # 2

    awk로 시도해 볼 수 있다고 생각합니다

    awk -v OFS="\t" '$1=$1' file1
    
    

    내가 좋아하면 SED

    sed 's/[:blank:]+/,/g' thefile.txt > the_modified_copy.txt
    
    

    또는 심지어 tr

    tr -s '\t' < thefile.txt | tr '\t' ' ' > the_modified_copy.txt
    
    

    Sam Bisbee에 의해 중단 된 tr 솔루션의 단순화 된 버전

    tr ' ' \\t < someFile > someFile
    
    

  • 답변 # 3

    tr명령 :

    tr [:blank:] \\t
    
    

    grep, cut 등으로 추가 처리 할 수 ​​있도록unzip -l출력을 정리합니다

    예 :

    unzip -l some-jars-and-textfiles.zip | tr [:blank:] \\t | cut -f 5 | grep jar
    
    

  • 답변 # 4

    Perl사용 :

    perl -p -i -e 's/ /\t/g' file.txt
    
    

  • 답변 # 5

    다음 스크립트를 다운로드하여 실행하여 소프트 탭을 일반 텍스트 파일의 하드 탭으로 재귀 적으로 변환하십시오.

    일반 텍스트 파일이 들어있는 폴더 내부에서 스크립트를 배치하고 실행하십시오.

    #!/bin/bash
    find . -type f -and -not -path './.git/*' -exec grep -Iq . {} \; -and -print | while read -r file; do {
        echo "Converting... "$file"";
        data=$(unexpand --first-only -t 4 "$file");
        rm "$file";
        echo "$data" > "$file";
    }; done;
    
    

  • 이전 ruby - 원격 사이트에서 사용 가능한 모든 gem 버전을 어떻게 나열합니까?
  • 다음 linux - Amazon EBS를 여러 인스턴스에 연결할 수 있습니까?