我有一個帶有三個段落的文本文件。我想用bash腳本命令以不同的顏色顯示不同的段落。紅色的第1段,藍色的第2段和青色的第3段。打印文本文件顏色的Bash腳本
我設法顯示使用彩色命令行像
echo -e '\E[32;47m Green.'; tput sgr0
不過,我想分析我的文件,並改變顏色時,有一個新的段落。我希望有一些提示。
我有一個帶有三個段落的文本文件。我想用bash腳本命令以不同的顏色顯示不同的段落。紅色的第1段,藍色的第2段和青色的第3段。打印文本文件顏色的Bash腳本
我設法顯示使用彩色命令行像
echo -e '\E[32;47m Green.'; tput sgr0
不過,我想分析我的文件,並改變顏色時,有一個新的段落。我希望有一些提示。
輸入/tmp/FILE
:http://pastie.org/4928415
腳本:
#!/bin/bash
c=1
tput setaf $c
while read a; do
[[ $a =~ ^$ ]] && tput setaf $((++c))
echo "$a"
done < /tmp/FILE
tput sgr0
輸出:
這裏的一個awk溶液,它使用在顏色設置的陣列的轉彎元素:
BEGIN { nc = split("\33[31;47m \33[34;43m \33[36;40m", colors, " ");
c=1; print colors[c] }
{ print }
/^$/ { c = 1+(c%nc); print colors[c]}
[編輯:上述錯誤地增加了段落之間的額外的空行。校正代碼如下:
BEGIN { nc = split("\33[31;47m \33[34;43m \33[36;40m", colors, " ");
c=1; printf "%s", colors[c] }
/^$/ { c = 1+(c%nc); print colors[c]}
!/^$/
的!/^$/
導致任何非空行打印爲是。 (結束編輯)]。
如果以上內容在文件3-para.awk中且數據在文件3-para.data中,請使用類似awk -f 3-para.awk 3-para.data
的命令來獲取如下輸出。
爲了更方便使用,定義調用腳本,然後重置顏色爲默認的功能:
tricolor() {
awk -f 3-para.awk $1; tput sgr0
}
通過(例如)tricolor 3-para.data
你只需要修改一個使用它的功能位來顯示想要的顏色。 –
非常感謝!我也可以將這種顏色的輸出轉換爲PDF文件,顏色仍保持不變。再次感謝你! –