각 줄의 마지막 문자 앞에 공백이나 탭을 추가하세요.

각 줄의 마지막 문자 앞에 공백이나 탭을 추가하세요.

문자로 끝나는 값 목록이 포함된 파일이 있습니다. 숫자와 문자를 구분하기 위해 각 줄의 마지막 문자 앞에 공백이나 탭 문자를 추가하는 쉬운 방법이 있습니까?

44A  
354T  
1453C  
77D

따라서 출력은 다음과 같습니다.

44 A  
354 T  
1453 C  
77 D

답변1

마지막 문자 뒤와 줄 끝 앞에 공백이 없으면 다음을 사용하십시오.

sed 's/.$/ &/' file

또는

perl -pe 's/.$/ $&/' file

줄 끝 앞에 공백이 있으면 다음을 사용하십시오.

perl -pe 's/(.*)(\S)/$1 $2/' file

답변2

이는 설명된 경우에 작동합니다.

sed 's/\(.\)$/\ \1/' file.txt 

다른 곳에 공간을 원하면 무너집니다.

답변3

행이 비어 있지 않은 경우...

perl -pe 'substr($_,-2,0)=" "'

답변4

vi에서는 다음을 사용하여 이를 수행할 수 있습니다.

:%s/\(.\)$/ \1/

분해하면 이렇습니다.

:%s    #Apply substitution to all lines
   /\(.\)$    #Search for a single character followed by the end of the line
          / \1/    #Replace with a space followed by that character

이는 줄 끝에 공백이 없다고 가정합니다. 항상 그렇지 않은 경우 다음을 사용하십시오.

:%s/\(\S\)\s*$/ \1/

이렇게 하면 모든 후행 공백이 제거되고 각 줄의 마지막 남은 문자 앞에 공백이 추가됩니다.

관련 정보