You're here: Snippet Directory » UNIX Admin (199)
Language:

a2b

Language: English
Programming Language: Unix Shell
Published by: kilgore [not registered]
Last Update: 5/15/2006
Views: 1026


Description

ASCII to Baudot filter

Code

1 #!/bin/sh 2 3 # ascii to baudot 4 5 # must turn bel into ~ for awk 6 7 tr -d '~' | tr '\007[a-z]' '~[A-Z]' | awk ' 8 BEGIN { 9 baudot["A"] = "| o o . |" 10 baudot["-"] = "| o o . |" 11 baudot["B"] = "| o . o o |" 12 baudot["?"] = "| o . o o |" 13 baudot["C"] = "| o . o o |" 14 baudot[":"] = "| o . o o |" 15 baudot["D"] = "| o . o |" 16 baudot["$"] = "| o . o |" 17 baudot["E"] = "| o . |" 18 baudot["3"] = "| o . |" 19 baudot["F"] = "| o . o o |" 20 baudot["!"] = "| o . o o |" 21 baudot["G"] = "| o . o o |" 22 baudot["&"] = "| o . o o |" 23 baudot["H"] = "| . o o |" 24 baudot["STOP"] = "| . o o |" 25 baudot["I"] = "| o . o |" 26 baudot["8"] = "| o . o |" 27 baudot["J"] = "| o o . o |" 28 baudot["'\''"] = "| o o . o |" 29 baudot["K"] = "| o o . o o |" 30 baudot["("] = "| o o . o o |" 31 baudot["L"] = "| o . o |" 32 baudot[")"] = "| o . o |" 33 baudot["M"] = "| . o o o |" 34 baudot["."] = "| . o o o |" 35 baudot["N"] = "| . o o |" 36 baudot[","] = "| . o o |" 37 baudot["O"] = "| . o o |" 38 baudot["9"] = "| . o o |" 39 baudot["P"] = "| o . o o |" 40 baudot["0"] = "| o . o o |" 41 baudot["Q"] = "| o o . o o |" 42 baudot["1"] = "| o o . o o |" 43 baudot["R"] = "| o . o |" 44 baudot["4"] = "| o . o |" 45 baudot["S"] = "| o . o |" 46 baudot["BELL"] = "| o . o |" 47 baudot["T"] = "| . o |" 48 baudot["5"] = "| . o |" 49 baudot["U"] = "| o o . o |" 50 baudot["7"] = "| o o . o |" 51 baudot["V"] = "| o . o o o |" 52 baudot[";"] = "| o . o o o |" 53 baudot["W"] = "| o o . o |" 54 baudot["2"] = "| o o . o |" 55 baudot["X"] = "| o . o o o |" 56 baudot["/"] = "| o . o o o |" 57 baudot["Y"] = "| o . o o |" 58 baudot["6"] = "| o . o o |" 59 baudot["Z"] = "| o . o |" 60 baudot["\""] = "| o . o |" 61 baudot[""] = "| . |" 62 baudot[""] = "| . |" 63 baudot["\r"] = "| . o |" 64 baudot["\n"] = "| o . |" 65 baudot[" "] = "| . o |" 66 baudot["LTRS"] = "| o o . o o o |" 67 baudot["FIGS"] = "| o o . o o |" 68 end = "|-------------|" 69 70 figchars = "-?:$3!&8'\''().,901457;2/6\"\r\n " 71 bell = "~" 72 figs = 0 73 print end 74 } 75 76 { 77 for (i = 1; i <= length($0); i++) 78 { 79 c = substr($0, i, 1) 80 81 if (c ~ /[A-Z]/) 82 { 83 if (figs) 84 { 85 print baudot["LTRS"] 86 figs = 0 87 } 88 } 89 else if (index(figchars, c) > 0 || c == bell) 90 { 91 if (c == bell) 92 c = "BELL"; 93 94 if (!figs) 95 { 96 print baudot["FIGS"] 97 figs = 1 98 } 99 } 100 else if (c == "\t") 101 c = " " 102 else 103 continue 104 105 print baudot[c] 106 } 107 108 print baudot["\n"] 109 } 110 111 END { 112 print end 113 } 114 ' 115 116 exit 117 118 | x x . x x x | 119 120 hole == mark == 1 121 !hole == space == 0 122 BITS LTRS FIGS HEX 123 ----- ---- ---- --- 124 125 00011 A - 03 126 11001 B ? 19 127 01110 C : 0E 128 01001 D $ 09 129 00001 E 3 01 130 01101 F ! 0D 131 11010 G & 1A 132 10100 H STOP 14 133 00110 I 8 06 134 01011 J ' 0B 135 01111 K ( 0F 136 10010 L ) 12 137 11100 M . 1C 138 01100 N , 0C 139 11000 O 9 18 140 10110 P 0 16 141 10111 Q 1 17 142 01010 R 4 0A 143 00101 S BELL 05 144 10000 T 5 10 145 00111 U 7 07 146 11110 V ; 1E 147 10011 W 2 13 148 11101 X / 1D 149 10101 Y 6 15 150 10001 Z " 11 151 00000 n/a n/a 00 152 01000 CR CR 08 153 00010 LF LF 02 154 00100 SP SP 04 155 11111 LTRS LTRS 1F 156 11011 FIGS FIGS 1B 157 158

No comments avaiable

Add a comment

Name *  

Email (won't be displayed) *    

Website  

Comment *  

Sicherheitscode Security Code *    

RSS