Ich habe den folgenden Code:Sed Einfärben der Ausgang funktioniert nicht wie erwartet
#!/bin/bash
reset=$(tput sgr0)
bold=$(tput bold)
red=$(tput setaf 1)
white=$(tput setaf 7)
pattern[0]='[0-9]'
replacement[0]="${white}${bold}&${reset}"
pattern[1]='[a-z]'
replacement[1]="${red}${bold}&${reset}"
args=()
for ((i=0; i < ${#pattern[@]}; i++)) ; do
args+=(-e "s/${pattern[i]}/${replacement[i]}/g")
done
echo "asdf1234" | sed "${args[@]}"
Es gibt:
asdfmm1mmm2mmm3mmm4m
dh zusätzliche m
Zeichen hinzugefügt und alle Buchstaben sind rot, die Ziffern sind nicht hervorgehoben.
Mein Wunsch ist es, Buchstaben in rot und Ziffern in weiß zu haben. Wie kann ich das machen?
Es könnte brechen, wenn die Eingabe \ 001 usw. enthält. – choroba
Danke. Das funktioniert. Die '00x'-Codes machen den Code jedoch unlesbar. Ich bin bereit, die Variablennamen zu verwenden, um sie lesbar zu halten. Können Sie bitte beraten, wie das geht? – george
dann nur noch "\ ooo" zu vars zuordnen. z.B .: '_red = $ '\ 003'' – pynexj