我在bash脚本中遇到sed的一点问题:
#!/bin/bash
clear
DAY=$(date -d "$D" '+%d')
MONTH=$(date -d "$D" '+%m')
YEAR=$(date -d "$D" '+%Y')
RED='\033[0;31m'
NC='\033[0m' # No Color
cal >> plik1.txt
echo "ni po wt sr cz pi so"
awk '{if(NR>2)print}' plik1.txt | sed s/$DAY/${RED}${DAY}${NC}/g
echo "Miesiac: $MONTH Rok: $YEAR Dzien: $DAY"
rm plik1.txt
Sed不会改变颜色。有什么想法吗?
答案 0 :(得分:3)
\033
并非由正常引号内的shell专门处理。使用ANSI引用。
RED=$'\033[0;31m'
NC=$'\033[0m' # No Color
答案 1 :(得分:1)
向命令-h
添加选项cal
以禁用此处自己的今日突出显示。
请参阅:cal | cat -A
和cal -h | cat -A
答案 2 :(得分:0)
这应该给你想要的东西:
#!/bin/bash
clear
day=$(date -d "$D" '+%d')
echo "DAY : "$day
month=$(date -d "$D" '+%m')
year=$(date -d "$D" '+%Y')
red=$'\033[0;31m'
nc=$'\033[0m'
echo "ni po wt sr cz pi so"
awk '{if(NR>2)print}' <(cal -h) | sed "s/$day/${red}${day}${nc}/"
echo "Miesiac: $month Rok: $year Dzien: $day"
<强>提供者:强>
cal -h
小费 - 这很关键。