Paste
Итак. Команда: paste
Название: вставка, объединение строк файлов.
Обзор: paste [опция]...[файл]...
Описание: записывает строки состоящие из последовательно соответствующих строк из каждого файла, разделённых TABами, в стандартный вывод. Если файла нет или файл это -, читает стандартный ввод. обязательные аргументы для длинных опций, также являются обязательными и для коротких опций.
Опции
-d, --delimiters=LIST
- Использует символы из LIST вместо TABов.
-s, --serial (серийная) последовательная вставка по одному файлу за раз, вместо парралельной.
-z, --zero terminated разделители строк становятся NUL вместо новых строк.
-help демонстрирует данную инструкцию, после чего предоставляет возможность закрыть её.
-version демонстрирует информацию о версии и предоставляет возможность закрыть её.
Пример
bubylda@kodomo:~/temp$ paste which
#! /bin/sh set -ef
if test -n "$KSH_VERSION"; then
- puts() {
print -r – "$*"
else
- puts() {
- printf '%s\n' "$*"
fi
ALLMATCHES=0
while getopts a whichopts do
- case "$whichopts" in
- a) ALLMATCHES=1 ;; ?) puts "Usage: $0 [-a] args"; exit 2 ;;
done shift $(($OPTIND - 1))
if [ "$#" -eq 0 ]; then
- ALLRET=1
else
- ALLRET=0
fi case $PATH in
- (*[!:]:) PATH="$PATH:" ;;
esac for PROGRAM in "$@"; do
- RET=1 IFS_SAVE="$IFS" IFS=: case $PROGRAM in
- /*)
if [ -f "$PROGRAM" ] && [ -x "$PROGRAM" ]; then
- puts "$PROGRAM" RET=0
- )
- for ELEMENT in $PATH; do
- if [ -z "$ELEMENT" ]; then
- ELEMENT=.
if [ -f "$ELEMENT/$PROGRAM" ] && [ -x "$ELEMENT/$PROGRAM" ]; then
- puts "$ELEMENT/$PROGRAM" RET=0
[ "$ALLMATCHES" -eq 1 ] || break
- if [ -z "$ELEMENT" ]; then
- for ELEMENT in $PATH; do
- ALLRET=1
- /*)
done
exit "$ALLRET"