Итак, окончательный сценарий для первой части:
for file in facturas/*; do
awk 'BEGIN {
split("fechae tpago ruc nfactura total iva10 iva5 iva0 archivado fechap",campos)
print "{"
}
END {
print "\n}"
}
{
printf( "%s",newrec)
printf( "\"%s\":\"%s\"", campos[NR], $0)
newrec=",\n"
}' "$file" > "${file}.json"
done
И окончательный результат для второй части:
#!/bin/bash
for i in "$@"; do
printf "%s " "$i"
sed -n 's/".*":"\(.*\)"/\1/p' "$i" | tr ',\n' ' '
echo
done | column -t
Спасибо всем за проявленный интерес.
В итоге я написал скрипт, потому что в сети нет решения:
#!/bin/bash
CMD=$1
#DIR=$(readlink -ve "/proc/$PPID/cwd")
DIR=`pwd`
PRIVILEGE='$'
#echo $DIR
[ $# -eq 0 -o $# -gt 1 ] && { echo -e "Usage:\n\t $0 command\n\t Command should be enclosed in quotations"; exit 1; }
if [ $UID -ne 0 ]; then echo "Please run this script with sudo:"; echo "sudo $0 $*"; exit 1; fi
mkdir -p /result
#echo $DIR
PATTERN="^\/home\/\w+$"
if [[ $DIR =~ $PATTERN || $DIR == '/root' ]]; then DIR='~'; else DIR=`basename $PWD`; fi
echo $DIR
if [ $UID -eq 0 ]; then PRIVILEGE='#'; fi
#echo $PRIVILEGE
NUM=`ls -vr /result/ | head -1 | sed -e 's/\..*$//'`
if [ ! -n "$NUM" ]; then NUM=1; else ((NUM++)); fi
convert -font DejaVu-Sans-Mono-Book -pointsize 16 label:"$(echo "[`id -u -n`@`hostname` $DIR]$PRIVILEGE $CMD";$CMD)" /result/$NUM.png
echo $NUM.png