컬러 텍스트 예(ls로 생성):
\e[0m\e[01;34m.cache\e[0m/
\e[01;34minferno\e[0m/
\e[01;34m.JUNK\e[0m/
\e[01;34m.nano\e[0m/
\e[01;34mpoo\e[0m/
\e[01;34mPrograms\e[0m/
\e[01;34mrestore\e[0m/
\e[01;34m.ssh\e[0m/
\e[34;42mWorkspace\e[0m/
a.sh
.bash_history
\e[01;32m.bash_profile\e[0m*
.bashrc
gg dd.txt
작동하지 않는 sed 명령:
sed -r 's/^((\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK])*[^\.])/ \1/'
나는 텍스트가 포함된 변수를 에코하고 다음과 같이 sed에 파이핑하여 이를 달성하려고 했습니다.
echo "$text" | sed -r 's/^((\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK])*[^\.])/ \1/'
마침표로 시작하지 않는 줄 앞에 공백이 있으면 좋겠습니다. 나는 이것에 몇 시간을 보냈습니다. 도와주세요.
답변1
마침표로 시작하지 않는 줄 앞에 공백이 있으면 좋겠습니다.
이 의견을 바탕으로 업데이트:
색상을 무시해야 합니다.
\e[01;34m.nano\e[0m/
앞에 공백이 있어서는 안 됩니다.
노력하다이것 sed
:
sed -E '/^\.|\\e/! s/(.)/ \1/'
예:
echo "\e[0m\e[01;34m.cache\e[0m/
\e[01;34minferno\e[0m/
\e[01;34m.JUNK\e[0m/
\e[01;34m.nano\e[0m/
\e[01;34mpoo\e[0m/
\e[01;34mPrograms\e[0m/
\e[01;34mrestore\e[0m/
\e[01;34m.ssh\e[0m/
\e[34;42mWorkspace\e[0m/
a.sh
.bash_history
\e[01;32m.bash_profile\e[0m*
.bashrc
gg dd.txt" | sed -E '/^\.|\\e/! s/(.)/ \1/'
\e[0m\e[01;34m.cache\e[0m/
\e[01;34minferno\e[0m/
\e[01;34m.JUNK\e[0m/
\e[01;34m.nano\e[0m/
\e[01;34mpoo\e[0m/
\e[01;34mPrograms\e[0m/
\e[01;34mrestore\e[0m/
\e[01;34m.ssh\e[0m/
\e[34;42mWorkspace\e[0m/
a.sh
.bash_history
\e[01;32m.bash_profile\e[0m*
.bashrc
gg dd.txt
오직 그아니요점( .
) 또는 "색상"( \e
)으로 시작하고 앞에 공백 문자가 옵니다.