program tip

쉘 스크립트에서 여러 줄 출력 들여 쓰기

radiobox 2020. 12. 15. 18:54
반응형

쉘 스크립트에서 여러 줄 출력 들여 쓰기


SSH를 사용할 때 내 디렉터리 중 하나의 git 상태를 표시하도록 Ubuntu Amazon EC2 상자에서 오늘의 메시지 (MOTD)를 변경하려고합니다.

모든 기본 MOTD 파일의 출력은 각 줄의 시작 부분에 두 개의 공백이 있으므로 들여 쓰기가 멋지게 보이지만 git status출력이 여러 줄에 걸쳐 있기 때문에 echo -n " "첫 번째 줄만 들여 쓰기 만하면됩니다.

모든 줄을 들여 쓰는 방법을 아십니까?

감사!


sed각 줄의 시작 부분에 2 개의 공백을 삽입 하도록 파이프하십시오 .

git status | sed 's/^/  /'

@Barmar의 답변을 바탕으로 이것은 더 깔끔한 방법입니다.

indent() { sed 's/^/  /'; }

git status | indent
other_command | indent

몇 가지 멋진 간단한 솔루션에 대해 @Barmar와 @Marplesoft 덕분에-다른 사람들이 좋아할 수있는 또 다른 변형이 있습니다-다음을 사용하여 들여 쓰기 수준을 알 수있는 함수입니다 pr.

indent() {
  local indentSize=2
  local indent=1
  if [ -n "$1" ]; then indent=$1; fi
  pr -to $(($indent * $indentSize))
}

# Example usage
ls -al | indent
git status | indent 2

참조 URL : https://stackoverflow.com/questions/17484774/indenting-multi-line-output-in-a-shell-script

반응형