You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置iTerm2根据特定文本自动更改字体颜色?

Solution for Coloring "GET" and "#" in Terminal Output

Got it, let's break down how to make your terminal output colorize "GET" in green and the "#" character with its own distinct color. The approach depends on which shell or scripting language you're using, so I'll cover the most common scenarios below.

Bash/Zsh (Unix-like terminals)

First, we'll use ANSI escape codes—these are the standard way to add color to terminal text. Here's how to implement it:

1. Directly output colored text in a script

Define color variables for reuse, then wrap the target text with the color code and a reset code (to stop coloring after the target):

# Define ANSI color codes
GREEN='\033[0;32m'       # Green text for "GET"
HASH_COLOR='\033[0;33m'  # Yellow for "#" (pick any color you want)
RESET='\033[0m'          # Reset to default terminal color

# Example output
echo -e "${GREEN}GET${RESET} /api/data HTTP/1.1"
echo -e "Processing request ${HASH_COLOR}#${RESET}42"
  • The -e flag in echo enables interpretation of escape sequences.
  • Replace 33 with another number if you want a different color for "#": 31=red, 34=blue, 35=purple, etc.

2. Colorize existing command output

If you want to automatically color "GET" and "#" in the output of another command (like logs or a server output), pipe it through sed:

# Replace "GET" with green version and "#" with yellow version in command output
your_command | sed -e 's/GET/\x1b[32m&\x1b[0m/g' -e 's/#/\x1b[33m&\x1b[0m/g'
  • & in the sed replacement refers to the matched text (so we don't have to retype "GET" or "#").
  • \x1b is the same as \033—both represent the escape character that triggers color changes.

PowerShell (Windows)

PowerShell has built-in cmdlets for coloring text, which avoids dealing with raw escape codes directly:

1. Direct output

# Print "GET" in green, then the rest of the line in default color
Write-Host "GET" -ForegroundColor Green -NoNewline
Write-Host " /api/data HTTP/1.1"

# Print "#" in yellow, followed by the rest of the text
Write-Host "#" -ForegroundColor Yellow -NoNewline
Write-Host "42 - Request processed"
  • The -NoNewline flag keeps the text on the same line instead of breaking to a new one.

2. Colorize existing output

Use regex replacement with escape codes to colorize output from another command:

your_command | ForEach-Object {
    # Replace "GET" with green, "#" with yellow
    $_ -replace 'GET', "$([char]27)[32m`$0$([char]27)[0m" `
       -replace '#', "$([char]27)[33m`$0$([char]27)[0m"
}

Quick Notes

  • If you're using an older Windows Command Prompt (not PowerShell), you'll need to enable ANSI escape code support first by running:
    reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1
    
    Then restart your cmd window for changes to take effect.
  • Most modern terminals (like iTerm2, GNOME Terminal, Windows Terminal) support ANSI escape codes out of the box.

Let me know if you're working with a specific language (Python, Node.js, etc.) and I can share tailored examples!

内容的提问来源于stack exchange,提问作者Qoomit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 18:21:00