Не знаю, что там за трудности в вашей макоси, что за конвейеры вам понадобились и зачем пихать имена файлов в переменные окружения, но если имелись в виду каналы (pipe), перенаправления и переменные вообще, то вот: $ cd ~/1
$ cat too_many_dashes.txt
–—‒―‐‑ー一
$ cat too_many_dashes.txt > test.txt
$ cat test.txt
–—‒―‐‑ー一
$ cat test.txt | sort
–—‒―‐‑ー一
$ cat test.txt | sort > test2.txt
$ cat test2.txt
–—‒―‐‑ー一
$ cat test2.txt | grep "–"
–—‒―‐‑ー一
$ TEST=`cat ~/1/test2.txt`; echo $TEST
–—‒―‐‑ー一
На мотив «Я люблю тебя, жизнь»:
«
Век живи, век учись,
Попивая чаек с маргарином.
Век живи, век учись,
А помрешь все равно ты дубиной.
»
(старая студенческая пародия)
А еще есть т.н. цифровой минус, и бог знает еще сколько черточек в этом вашем юникоде.
Не стал углубляться в дебри, основная тема статьи все же Level 3.
В никсах никаких проблем — ловим всевозможные варианты grep'ом, sed'ом, awk'ом, выбрать по вкусу.
А в «батниках», это да, боль. Впрочем, сами батники одна сплошная боль.
Не стоит, также, забывать, что пользователи вам ничего не должны, и имеют полное право именовать файлы, как им хочется.
А вот нажатие Ctrl + клавиша образует какой-нибудь level, или нет?
Если не повесить на нее выбор третьего уровня, то нет. А если повесить, она перестанет работать, как Control (может быть, не во всех ситуациях, но там, где возможен ввод текста — точно перестанет).
isset() даст true, если переменная существует и ей не присвоено NULL.
!empty() даст true, если переменная существует, и заодно не NULL, не нуль (целое либо дробное), не символ нуль (string '0'), не пустая строка, не пустой массив, не false.
То есть, делает примерно то же, что и if внутри скобок. На практике такая проверка нужна часто, а empty() удобна тем, что не генерирует варнинг. И можно не заморачиваться предварительным объявлением переменной. В документации это прекрасно описано. Мне казалось, это даже коты знают, а поди ж ты. :)
Я вижу. С такой ерундой, как терминология, за 20 лет не разобрались. Утилита sh, надо же. :)
$ cd ~/1
$ cat too_many_dashes.txt
–—‒―‐‑ー一
$ cat too_many_dashes.txt > test.txt
$ cat test.txt
–—‒―‐‑ー一
$ cat test.txt | sort
–—‒―‐‑ー一
$ cat test.txt | sort > test2.txt
$ cat test2.txt
–—‒―‐‑ー一
$ cat test2.txt | grep "–"
–—‒―‐‑ー一
$ TEST=`cat ~/1/test2.txt`; echo $TEST
–—‒―‐‑ー一
У меня в линуксе ничего не ломается.
$ locale
LANG=ru_RU.UTF-8
LANGUAGE=ru
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
sed -i -r 's/[–—‒―‐‑ー一]/-/g' file
(кодировка utf-8)
Пользуйтесь на здоровье. :)
А как вам такая версия?
:)
«
Век живи, век учись,
Попивая чаек с маргарином.
Век живи, век учись,
А помрешь все равно ты дубиной.
»
(старая студенческая пародия)
И вендоры вам лично тоже ничего не должны в именах файлов. Не можете справиться с парсингом? Ваша личная проблема.
Насчет обработки длительного нажатия не в курсе, никогда от таком не слышал.
О, Спекки, любовь моя, ты мне достался только в шестом экземпляре — предыдущие пять, что я собрал, диспетчера и пилоты буквально вырывали из рук.
Вообще-то на всех ОС практически. :)
Не стал углубляться в дебри, основная тема статьи все же Level 3.
А в «батниках», это да, боль. Впрочем, сами батники одна сплошная боль.
Не стоит, также, забывать, что пользователи вам ничего не должны, и имеют полное право именовать файлы, как им хочется.
Ничего не понял. Сдаюсь. :)
Если не повесить на нее выбор третьего уровня, то нет. А если повесить, она перестанет работать, как Control (может быть, не во всех ситуациях, но там, где возможен ввод текста — точно перестанет).
isset() даст true, если переменная существует и ей не присвоено NULL.
!empty() даст true, если переменная существует, и заодно не NULL, не нуль (целое либо дробное), не символ нуль (string '0'), не пустая строка, не пустой массив, не false.
То есть, делает примерно то же, что и if внутри скобок. На практике такая проверка нужна часто, а empty() удобна тем, что не генерирует варнинг. И можно не заморачиваться предварительным объявлением переменной. В документации это прекрасно описано. Мне казалось, это даже коты знают, а поди ж ты. :)
Упоротупорный прогер, уж сколько лет его пинают. Ждем обновленного патча от каноникла.Не говоря уж о том, что камрад GeMir возражал против женского рода. ;)