Вот сценарий sed, который разделит ваш пример:
#!/bin/sed -Ef
# replace all commas with newlines
s/,/\
/g
# Do we need to re-join any lines?
:loop
# Unmatched brace containing possibly another (matched) level of
# braces:
s/(\{([^{}]|\{[^{}]*\})*)\
/\1,/
tloop
# remove any leading space
s/\n */\
/g
# At first line, print result, then exit.
1q
Предостережение: он будет обрабатывать только два уровня фигурных скобок (согласно комментарии к вопросу).
$ ./259252.sed <<<'{0,1}, alpha, {(x,y,z)}, {{1,2,3}, {a,b,c}}'
{0,1}
alpha
{(x,y,z)}
{{1,2,3}, {a,b,c}}
И чтобы показать, что он завершается после обработки первой строки:
$ ./259252.sed <<<$'a,b,c\nd,e,f'
a
b
c
Я запускаю это в Linux и использую ответы на Различия между sed в Mac OSX и другими «стандартными» «Sed? , чтобы перенести его на MacOS. Если это не сработает, то этот ответ предлагает вам установить GNU sed с помощью brew install gnu-sed
, а затем использовать gsed
вместо sed
, чтобы вызвать его.
#!/bin/bash
TEST_STRING="{0,1}, alpha, {(x,y,z)}, {{1,2,3}, {a,b,c}}"
echo "${TEST_STRING}" | sed -E -f 259252.sed | while read Extracted_Word; do
printf "Word='%s'\n" "${Extracted_Word}"
done
, что дает:
Word='{0,1}'
Word='alpha'
Word='{(x,y,z)}'
Word='{{1,2,3}, {a,b,c}}'
Похоже, это проблема кэширования браузера. После того, как я закрыл вкладку браузера, открыл другую и заново зашел на сайт, я смог войти в систему.
Возможно, я полностью закрыл окно браузера. ---Я не заметил, что закрыл его между использованием разных вкладок. Кажется, я не закрыл окно браузера.
В любом случае я не обновлял страницу ни F5, ни CTRL+R, ни CTRL+F5 и т.п.