В Swift 3.0
extension String
{
func trim() -> String
{
return self.trimmingCharacters(in: CharacterSet.whitespaces)
}
}
И вы можете позвонить
let result = " Hello World ".trim() /* result = "Hello World" */
@ Ответ Netcoder хорош, эта оптимизация устраняет ложные пустые строки, а также позволяет последней строке не иметь новой строки, если так было в оригинале.
DONE=false
NL=
until $DONE ;do
if ! read ; then DONE=true ; NL='-n ';fi
echo $NL$REPLY
done
Я использовал вариант этого, чтобы создать 2 функции, чтобы позволить конвейерную передачу текста, который включает '[', чтобы держать grep счастливым. (вы можете добавить другие переводы)
function grepfix(){
local x="$@";
if [[ "$x" == '-' ]]; then
local DONE=false
local xx=
until $DONE ;do
if ! IFS= read ; then DONE=true ; xx="-n "; fi
echo ${xx}${REPLY//\[/\\\[}
done
else
echo "${x//\[/\\\[}"
fi
}
function grepunfix(){
local x="$@";
if [[ "$x" == '-' ]]; then
local DONE=false
local xx=
until $DONE ;do
if ! IFS= read ; then DONE=true ; xx="-n "; fi
echo ${xx}${REPLY//\\\[/\[}
done
else
echo "${x//\\\[/\[}"
fi
}
(передача - поскольку $ 1 включает pipe, в противном случае просто переводит аргументы)
Вместо читать , попробуйте использовать GNU Coreutils , например tee , cat и т. Д.
из стандартного ввода
readvalue=$(tee)
echo $readvalue
из файла
readvalue=$(cat filename)
echo $readvalue