Могу ли я установить переменную LANG изнутри sed? - PullRequest
1 голос
/ 23 января 2011

Я написал скрипт для замены некоторых выражений и удаления других, но он не смог очистить специальные символы.Настройка LANG = C решила это, но возможно ли установить эту переменную окружения изнутри sed?

Ответы [ 3 ]

2 голосов
/ 23 января 2011

Нет, но вам не нужно. Вы можете установить переменную envirinment перед выполнением команды sed.

0 голосов
/ 23 января 2011

Вы можете установить переменную среды так, чтобы она была активной только для одного вызова команды или сценария:

LANG=C sed ...

или

LANG=C sedscript
0 голосов
/ 23 января 2011

Если ваш сценарий является sed сценарием, вы можете просто сжать эту часть и поместить ее в стандартный сценарий оболочки. например,

#!/usr/bin/sed -f

1 {
    x
    s/^$/          /
    s/^.*$/&&&&&&&&/
    x
}

в

#!/bin/sh

export LANG=C

/usr/bin/sed '
1 {
    x
    s/^$/          /
    s/^.*$/&&&&&&&&/
    x
}
' "$@"

(из примера в документе sed info.)

С завершающим "$@" он должен передавать аргументы и обрабатывать stdin таким же образом.

...