Я хотел бы преобразовать файл data.txt в следующий вывод, используя awk 1liner
cat data.txt
персона нета нетб нетк personB meta metb metc metd
....
выход:
это хорошее использование для subtr () и index ().
awk '{print $1FS"has {"substr($0,index($0,$2))"} itmes in his bag."}' data.txt
персона имеет в своей сумке {neta netb netc}. personB имеет в своей сумке {meta metb metc metd} itmes.
персона имеет в своей сумке {neta netb netc}.
personB имеет в своей сумке {meta metb metc metd} itmes.
while read line; do set -- $line person=$1 shift printf "%s has {$s} items in his bag" "$person" "$*" done < data.txt
awk '{$1=$1" has";$2="{"$2;print $0"} items in his bag"}' data.txt
А как же:
awk '{ items=""; for(i=2;i<=NF;i++) {items=items" "$i}; gsub(/^[ ]/, "", items); print $1" has {"items"} items in his bag" }' data.txt