Добавить строку префикса в начало каждой строки - PullRequest
291 голосов
/ 20 января 2010

У меня есть файл, как показано ниже:

line1
line2
line3

И я хочу получить:

prefixline1
prefixline2
prefixline3

Я мог бы написать скрипт на Ruby, но лучше, если мне это не нужно.

prefix будет содержать /. Это путь, например /opt/workdir/.

Ответы [ 11 ]

0 голосов
/ 16 марта 2016

Вот обобщенный пример с использованием подхода sed из этого ответа :

$ cat /path/to/some/file | prefix_lines "WOW: "

WOW: some text
WOW: another line
WOW: more text

prefix_lines

function show_help()
{
  IT=$(CAT <<EOF
    Usage: PREFIX {FILE}

    e.g.

    cat /path/to/file | prefix_lines "WOW: "

      WOW: some text
      WOW: another line
      WOW: more text
  )
  echo "$IT"
  exit
}

# Require a prefix
if [ -z "$1" ]
then
  show_help
fi

# Check if input is from stdin or a file
FILE=$2
if [ -z "$2" ]
then
  # If no stdin exists
  if [ -t 0 ]; then
    show_help
  fi
  FILE=/dev/stdin
fi

# Now prefix the output
PREFIX=$1
sed -e "s/^/$PREFIX/" $FILE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...