perl -pe '(eof)?s/\s+$//:s/\s+$/,/' input.txt
вывод: никакое запаздывание \n
EN1,EN2,EN3,EN4,EN5
С любой оболочкой POSIX:
tab=$(printf '\t') # or tab=' ' # (a real tab character)
case $outline in
("#${tab}modified:"*) ...
esac
С ksh93
, zsh
или bash
:
case $outline in
($'#\tmodified:'*) ...
esac
или:
if [[ $outline = $'#\tmodified:'* ]]; then...
Ключ:
*
не должен быть заключен в кавычки, иначе это взято буквально.\t
только расширен в $'...'
тип кавычки (или printf
в аргументе формата)Можно использовать удар regex оператор сопоставления строк =~
:
outline="# modified: Jan 10 2015" # or
outline="# new file: hello.sh"
if [[ $outline =~ ^#\ (modified|new file): ]]; then
echo match
else
echo no match
fi
Отметьте это оба пробела прежде modified
экземпляры в коде и пробел прежде new file
вкладки. пробел внутри new file
регулярное пространство.
(Отредактированный для соответствия любому из этих двух форматов.)