Исправление quantum-troll, (текущая версия) :
sed, awk... зачем эти сложности? Вот решение на почти чистом rc:
#!/usr/bin/env rc
file=file.txt
i='1'
oifs=$ifs
ifs='|'
days=`{sed 1q $file} while(! ~ $i '0' && ! ~ $i '7') {
if(~ ' *'^$1^'* ' $days($i)) { nl=$i ; i='0' }
if not ifs=$oifs i=`{ hoc -e $i+1 }
ifs='|'
}
sed 1q $file
tail -n +2 $file | while(l=`{read}) {
i='1' while(! ~ $i '0' && ! ~ $i '7') {
if(~ $i $nl) echo -n '| no '
if not echo -n '|'$l($i)
ifs=$oifs i=`{hoc -e $i+1}
ifs='|'
}
echo '|'
}
% ./test.rc Wednesday
| *Name* | *Monday* | *Tuesday* | *Wednesday* | *Thursday* | *Friday* |
| qwe %EDITCELL{ "label, 0, qwe" }% | yes | yes | no | yes | yes |
| asd %EDITCELL{ "label, 0, asd" }% | yes | yes | no | yes | yes |
| zxc %EDITCELL{ "label, 0, zxc" }% | yes | yes | no | yes | yes |
Исходная версия quantum-troll, :
sed, awk... зачем эти сложности? Вот решение на почти чистом rc:
#!/usr/bin/env rc
file=file.txt
oifs=$ifs
i='1'
ifs='|'
days=`{sed 1q $file} while(! ~ $i '0' && ! ~ $i '7') {
if(~ ' *'^$1^'* ' $days($i)) { nl=$i ; i='0' }
if not ifs=$oifs i=`{ hoc -e $i+1 }
ifs='|'
}
sed 1q $file
tail -n +2 $file | while(l=`{read}) {
i='1' while(! ~ $i '0' && ! ~ $i '7') {
if(~ $i $nl) echo -n '| no '
if not echo -n '|'$l($i)
ifs=$oifs i=`{hoc -e $i+1}
ifs='|'
}
echo '|'
}
% ./test.rc Wednesday
| *Name* | *Monday* | *Tuesday* | *Wednesday* | *Thursday* | *Friday* |
| qwe %EDITCELL{ "label, 0, qwe" }% | yes | yes | no | yes | yes |
| asd %EDITCELL{ "label, 0, asd" }% | yes | yes | no | yes | yes |
| zxc %EDITCELL{ "label, 0, zxc" }% | yes | yes | no | yes | yes |