파일의 각 줄 시작 앞에 5번 공백을 추가하는 명령줄이나 bash 스크립트를 찾고 있습니다.
예를 들어:
abc
공백을 5번 추가한 후
abc
답변1
GNU sed 사용:
sed -i -e 's/^/ /' <file>
각 줄의 시작 부분을 5개의 공백으로 대체합니다. 실행할 코드를 제공하여 -i
파일을 수정하세요 . 대체를 수행하고 줄의 시작 부분을 일치시키라고 지시합니다 . 그런 다음 마지막 두 문자 사이의 부분이 시작 부분에서 일치하는 부분(이 경우 줄의 시작 부분)을 대체합니다.-e
sed
s
sed
^
/
답변2
당신은 그것을 사용할 수 있습니다sed
sed 's_^_ _' tmpin > tmpout
또는awk
awk '{print " " $0}' tmpin > tmpout
아니면 붙여넣기(감사합니다쿠엔람)
:| paste -d' ' - - - - - file
주의 깊은. 이것들은 중독성이 있을 수 있습니다. 많은 간단한 문제를 해결할 수 있지만 완전한 스크립트 언어로 업그레이드해야 할 때가 올 것입니다.
편집하다:Eric Renouf의 답변을 기반으로 Sed 스크립트가 단순화되었습니다.
답변3
다음과 같이 사용할 수 있는 표준 도구가 많이 있습니다 paste
.
:| paste -d' ' - - - - - file
또는 더 짧음 awk
:
awk '{$1=" "$1}1' file
또는 더 휴대성이 뛰어납니다 perl
.
perl -pe '$_=" "x5 .$_' file
답변4
Ex 모드에서 Vim을 사용할 수 있습니다:
ex -sc '%s/^/ /|x' file
%
모든 행 선택s
바꾸다x
저장하고 닫습니다