#!/bin/sh
find . -name 'ABC_*.txt' | while read file; do
res=$( echo "$file" |
sed -r 's#\S*_(....)(..)(..)(..)(..)(..).*#\1\2\3|\3.\2.\1 \4.\5.\6#' )
col4=${res%|*}
col5=${res#*|}
sed -r -i.bak '
s#(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|#\1|\2|\3|'"$col4"'|'"$col5"'|\6|\7|#' \
"$file"
done
Я думаю, что единственный способ сделать это — создать простой сценарий-оболочку для вашей команды:
#!/bin/sh
echo start "$@" end
затем вы можете использовать xargs echo-wrapper
Конечно, вы можете сделать это встроенным:
xargs sh -c 'echo start "$@" end' sh <<EOF
hello
world
EOF
] Обратите внимание на дополнительный sh
в конце — это часть синтаксиса sh -c
, он указывает $0
внутри оболочки.