여러 줄 변수는 각 개행 문자 앞에 탭 문자를 추가합니다.

여러 줄 변수는 각 개행 문자 앞에 탭 문자를 추가합니다.

다음 코드 조각은 기본적으로 16진수 덤프를 변환하고 문자에서 중단하는 사용자 정의 함수 HexNewLine을 사용합니다. 0x0a

$ echo -e "\t{
>   "dependencies": {
>     "prettier": {
>       "version": "1.18.2",
>       "from": "[email protected]",
>       "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz"
>     }
>   }
> }" | HexNewLine

00000000   09 7b 0a                                           '.{.'
0000000a   20 20 64 65 70 65 6e 64 65 6e 63 69 65 73 3a 20    '  dependencies: '
0000001a   7b 0a                                              '{.'
0000001c   20 20 20 20 70 72 65 74 74 69 65 72 3a 20 7b 0a    '    prettier: {.'
0000002c   20 20 20 20 20 20 76 65 72 73 69 6f 6e 3a 20 31    '      version: 1'
0000003c   2e 31 38 2e 32 2c 0a                               '.18.2,.'
00000043   20 20 20 20 20 20 66 72 6f 6d 3a 20 70 72 65 74    '      from: pret'
00000053   74 69 65 72 40 31 2e 31 38 2e 32 2c 0a             '[email protected],.'
00000060   20 20 20 20 20 20 72 65 73 6f 6c 76 65 64 3a 20    '      resolved: '
00000070   68 74 74 70 73 3a 2f 2f 72 65 67 69 73 74 72 79    'https://registry'
00000080   2e 6e 70 6d 6a 73 2e 6f 72 67 2f 70 72 65 74 74    '.npmjs.org/prett'
00000090   69 65 72 2f 2d 2f 70 72 65 74 74 69 65 72 2d 31    'ier/-/prettier-1'
000000a0   2e 31 38 2e 32 2e 74 67 7a 0a                      '.18.2.tgz.'
000000aa   20 20 20 20 7d 0a                                  '    }.'
000000b0   20 20 7d 0a                                        '  }.'
000000b4   7d 0a                                              '}.'
  • tr이제 개행 뒤에 탭을 추가 했지만 아무 일도 일어나지 않았습니다!
$ echo -e "\t{
>   "dependencies": {
>     "prettier": {
>       "version": "1.18.2",
>       "from": "[email protected]",
>       "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz"
>     }
>   }
> }" | tr '\n' '\n\t'
        {
  dependencies: {
    prettier: {
      version: 1.18.2,
      from: [email protected],
      resolved: https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz
    }
  }
}

답변1

sed를 사용한 솔루션. 나는 bashism을 사용하여 $'\t'변수를 채우고 \t이 변수를 사용한 후에 sed를 사용합니다.

echo -e "{
   "dependencies": {
     "prettier": {
       "version": "1.18.2",
       "from": "[email protected]",
       "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz"
     }
   }
 }"  | ( TAB=$'\t' ; sed "s/^/$TAB/" )

관련 정보