<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Как выделить три последних символа имени файла?</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html</link>
    <description>Дано: в каталоге лежат несколько файлов с произвольными именами (с возможным содержанием пробелов). &lt;br&gt;Задача &amp;#8470;1: в цикле добавить к именам файлов в конец слово &quot;new&quot;, чтобы получились файлы типа &quot;имя_файлаnew.расширение&quot;.&lt;br&gt;Задача &amp;#8470;2: в цикле сделать обратное действие, т.е. у файлов с &quot;new&quot; на конце имени убрать это &quot;new&quot; на конце имени.&lt;br&gt;&lt;br&gt;Мои потуги:&lt;br&gt;&lt;br&gt;Задача &amp;#8470;1:&lt;br&gt;for i in ...&lt;br&gt;do&lt;br&gt;    mv &apos;$i&apos; &apos;$i.new&apos;&lt;br&gt;done&lt;br&gt;&lt;br&gt;задачу &amp;#8470;2 вообще не знаю как решить :(&lt;br&gt;&lt;br&gt;помогите, буду очень благодарен!&lt;br&gt;</description>

<item>
    <title>Как выделить три последних символа имени файла? (Name)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html#17</link>
    <pubDate>Tue, 24 May 2011 16:09:54 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; for ii in *;do mv &quot;$ii&quot; &quot;$&#123;ii&#037;.*&#125;.new.$&#123;ii##*.&#125;&quot;;done &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; решение  обратной задачи: &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; for ii in *;do mv -- &quot;$ii&quot; &quot;$&#123;ii&#037;.new.*&#125;.$&#123;ii##*.&#125;&quot;;done &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; to sany &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Прошу прощения, а можно вас попросить краткий комментарий дать, например зачем двойной &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; тире во второй операции а также двойной # в обеих если &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; вас не затруднит :) &lt;br&gt;&amp;gt;&amp;gt; $&#123;параметр(&#037;,&#037;&#037;,#,##)шаблон_из_регулярных_выражений&#125; &lt;br&gt;&amp;gt; это не регулярные выражения, это Shell Patterns &lt;br&gt;&amp;gt; подробнее &quot;Подстановка имен файлов&quot; http://www.opennet.ru/man.shtml?topic=bash&amp;category=1#lbBD &lt;br&gt;&lt;br&gt;Спасибо за замечание. Я не знаяю &quot;Shell Patterns&quot;,&lt;br&gt;$&#123;параметр(&#037;,&#037;&#037;,#,##)шаблон_из_регулярных_выражений&#125;&lt;br&gt;$&#123;параметр(&#037;,&#037;&#037;,#,##)шаблон_из_регулярных_выражений_shell&#125;&lt;br&gt;$&#123;параметр(&#037;,&#037;&#037;,#,##)pattern_matching&#125;&lt;br&gt;</description>
</item>

<item>
    <title>Как выделить три последних символа имени файла? (sany)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html#16</link>
    <pubDate>Tue, 24 May 2011 11:52:57 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt; Решение первой задачи: &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; for ii in *;do mv &quot;$ii&quot; &quot;$&#123;ii&#037;.*&#125;.new.$&#123;ii##*.&#125;&quot;;done &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; решение  обратной задачи: &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; for ii in *;do mv -- &quot;$ii&quot; &quot;$&#123;ii&#037;.new.*&#125;.$&#123;ii##*.&#125;&quot;;done &lt;br&gt;&amp;gt;&amp;gt; to sany &lt;br&gt;&amp;gt;&amp;gt; Прошу прощения, а можно вас попросить краткий комментарий дать, например зачем двойной &lt;br&gt;&amp;gt;&amp;gt; тире во второй операции а также двойной # в обеих если &lt;br&gt;&amp;gt;&amp;gt; вас не затруднит :) &lt;br&gt;&amp;gt; $&#123;параметр(&#037;,&#037;&#037;,#,##)шаблон_из_регулярных_выражений&#125; &lt;br&gt;&lt;br&gt;это не регулярные выражения, это Shell Patterns&lt;br&gt;подробнее &quot;Подстановка имен файлов&quot; http://www.opennet.ru/man.shtml?topic=bash&amp;category=1#lbBD&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Как выделить три последних символа имени файла? (Name)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html#15</link>
    <pubDate>Tue, 24 May 2011 05:53:54 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Решение первой задачи: &lt;br&gt;&amp;gt;&amp;gt; for ii in *;do mv &quot;$ii&quot; &quot;$&#123;ii&#037;.*&#125;.new.$&#123;ii##*.&#125;&quot;;done &lt;br&gt;&amp;gt;&amp;gt; решение  обратной задачи: &lt;br&gt;&amp;gt;&amp;gt; for ii in *;do mv -- &quot;$ii&quot; &quot;$&#123;ii&#037;.new.*&#125;.$&#123;ii##*.&#125;&quot;;done &lt;br&gt;&amp;gt; to sany&lt;br&gt;&amp;gt; Прошу прощения, а можно вас попросить краткий комментарий дать, например зачем двойной &lt;br&gt;&amp;gt; тире во второй операции а также двойной # в обеих если &lt;br&gt;&amp;gt; вас не затруднит :) &lt;br&gt;&lt;br&gt;mv --&lt;br&gt;программа mv написанна с использование функции getopt, для разбора аргументов, что позволяет указать завершение параметров программы, т.е все последйющие аргументы будут восприниматься как не-параметры.&lt;br&gt;Пример.&lt;br&gt;toch -- file -f&lt;br&gt;mv -f -- file file.new # -f является параметром программы mv&lt;br&gt;mv -- -f -f.new # -f является файлом&lt;br&gt;&lt;br&gt;$&#123;ii##*.&#125; $&#123;ii&#037;.*&#125;&lt;br&gt;Это &quot;Parameter Expansion&quot; или &quot;Parameter substitution&quot;, &quot;Раскрытие/подстановка параметров&quot;.&lt;br&gt;$&#123;параметр(&#037;,&#037;&#037;,#,##)шаблон_из_регулярных_выражений&#125;&lt;br&gt;$&#123;параметр#шаблон&#125; - подставляет значение параметра, в котором из головной части удалён наименьший фрагмент, удовлетворяющий шаблону.&lt;br&gt;$&#123;параметр##шабло</description>
</item>

<item>
    <title>Как выделить три последних символа имени файла? (Dart_Vitalus)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html#14</link>
    <pubDate>Mon, 23 May 2011 20:43:18 GMT</pubDate>
    <description>&amp;gt; Решение первой задачи:&lt;br&gt;&amp;gt; for ii in *;do mv &quot;$ii&quot; &quot;$&#123;ii&#037;.*&#125;.new.$&#123;ii##*.&#125;&quot;;done&lt;br&gt;&amp;gt; решение  обратной задачи:&lt;br&gt;&amp;gt; for ii in *;do mv -- &quot;$ii&quot; &quot;$&#123;ii&#037;.new.*&#125;.$&#123;ii##*.&#125;&quot;;done &lt;br&gt;&lt;br&gt;Прошу прощения, а можно вас попросить краткий комментарий дать, например зачем двойной тире во второй операции а также двойной # в обеих если вас не затруднит :)&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Как выделить три последних символа имени файла? (Name)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html#13</link>
    <pubDate>Mon, 23 May 2011 17:43:43 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; mv -v $&#123;file&#125; $&#123;file&#125;.new &lt;br&gt;&amp;gt;&amp;gt; &amp;#171;file name with blank&amp;#187; -&amp;gt; &amp;#171;file name with blank.new&amp;#187; &lt;br&gt;&amp;gt; без кавычек ошибку выдаёт: &lt;br&gt;&amp;gt; $ file=file&#092; name&#092; with&#092; blank &lt;br&gt;&amp;gt; $ touch $&#123;file&#125; &lt;br&gt;&amp;gt; $ mv -v $&#123;file&#125; $&#123;file&#125;.new &lt;br&gt;&amp;gt; mv: target &#096;blank.new&apos; is not a directory &lt;br&gt;&amp;gt; то есть файл с пробелом воспринимается за 4 файла.&lt;br&gt;&amp;gt; я не знаю, что у вас за шелл, но мои (bash,dash) требуют &lt;br&gt;&amp;gt; кавычек вокруг $&#123;file&#125; &lt;br&gt;&lt;br&gt;Извините, особенность shell&apos;а. POSIX требует экранирование.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Как выделить три последних символа имени файла? (sany)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html#12</link>
    <pubDate>Mon, 23 May 2011 14:26:20 GMT</pubDate>
    <description>&amp;gt; Прошу внимательней посмотреть на пример, some&#092; file содержит пробел. В использвуемой конструкции &lt;br&gt;&amp;gt; экранирование не требуется.&lt;br&gt;&amp;gt; Пример.&lt;br&gt;&amp;gt; file=file&#092; name&#092; with&#092; blank &lt;br&gt;&amp;gt; touch $&#123;file&#125; &lt;br&gt;&amp;gt; mv -v $&#123;file&#125; $&#123;file&#125;.new &lt;br&gt;&amp;gt; &amp;#171;file name with blank&amp;#187; -&amp;gt; &amp;#171;file name with blank.new&amp;#187; &lt;br&gt;&lt;br&gt;без кавычек ошибку выдаёт:&lt;br&gt;$ file=file&#092; name&#092; with&#092; blank&lt;br&gt;$ touch $&#123;file&#125;&lt;br&gt;$ mv -v $&#123;file&#125; $&#123;file&#125;.new&lt;br&gt;mv: target &#096;blank.new&apos; is not a directory&lt;br&gt;&lt;br&gt;то есть файл с пробелом воспринимается за 4 файла.&lt;br&gt;я не знаю, что у вас за шелл, но мои (bash,dash) требуют кавычек вокруг $&#123;file&#125;&lt;br&gt;</description>
</item>

<item>
    <title>Как выделить три последних символа имени файла? (Name)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html#11</link>
    <pubDate>Mon, 23 May 2011 13:59:59 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; for file in /dir/*; do mv $&#123;file&#125; $&#123;file&#037;...&#125;; done &lt;br&gt;&amp;gt;&amp;gt; Пример.&lt;br&gt;&amp;gt;&amp;gt; mkdir ~/dir &lt;br&gt;&amp;gt;&amp;gt; touch ~/dir/some&#092; file &lt;br&gt;&amp;gt;&amp;gt; for file in ~/dir/*; do mv $&#123;file&#125; $&#123;file&#125;.new; done &lt;br&gt;&amp;gt;&amp;gt; for file in ~/dir/*; do mv $&#123;file&#125; $&#123;file&#037;.???&#125;; done &lt;br&gt;&amp;gt; 1) на сколько я понял, сложность была в том, чтобы вставить суффикс &lt;br&gt;&amp;gt; между именем файла и расширением файла, а не просто дописать в &lt;br&gt;&amp;gt; конец, то есть чтобы расширение файла не поменялось &lt;br&gt;&amp;gt; 2) использование $&#123;file&#125; приведёт к ошибке для файлов, содержащих пробел, нужно &quot;$&#123;file&#125;&quot; &lt;br&gt;&lt;br&gt;Пример.&lt;br&gt; mkdir ~/dir &lt;br&gt; touch ~/dir/some&#092; file&lt;br&gt; touch ~/dir/some&#092; file.extension&lt;br&gt; cd ~/dir&lt;br&gt; export addword=&quot;.new&quot;&lt;br&gt; for file in *; do&lt;br&gt; case $&#123;file##*.&#125; in&lt;br&gt; $&#123;file&#125;) echo &quot;file not have extension&quot;;;&lt;br&gt; *)  mv -v $&#123;file&#125; $&#123;file&#037;.*&#125;$&#123;addword&#125;.$&#123;file##*.&#125;;;&lt;br&gt; esac;&lt;br&gt; done&lt;br&gt;&lt;br&gt; for file in *; do&lt;br&gt; case $&#123;file##*.&#125; in&lt;br&gt; $&#123;file&#125;) echo &quot;file not have extension&quot;;;&lt;br&gt; *)  mv -v $&#123;file&#125; $&#123;file&#037;$&#123;addword&#125;.*&#125;.$&#123;file##*.&#125;;;&lt;br&gt; esac;&lt;br&gt; done&lt;br&gt;&lt;br&gt;Спасибо за замечание, невнимателен. Сложнос</description>
</item>

<item>
    <title>Как выделить три последних символа имени файла? (pavlinux)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html#10</link>
    <pubDate>Mon, 23 May 2011 12:21:06 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; Задача &amp;#8470;2: в цикле сделать обратное действие, т.е. у файлов с &quot;new&quot; &lt;br&gt;&amp;gt; на конце имени убрать это &quot;new&quot; на конце имени.&lt;br&gt;&amp;gt; Мои потуги: &lt;br&gt;&amp;gt; Задача &amp;#8470;1: &lt;br&gt;&amp;gt; for i in ...&lt;br&gt;&amp;gt; do &lt;br&gt;&amp;gt;     mv &apos;$i&apos; &apos;$i.new&apos; &lt;br&gt;&amp;gt; done &lt;br&gt;&amp;gt; задачу &amp;#8470;2 вообще не знаю как решить :( &lt;br&gt;&amp;gt; помогите, буду очень благодарен!&lt;br&gt;&lt;br&gt;1.&lt;br&gt;&#091;code&#093;&lt;br&gt;# rename .jpg .new.jpg *.jpg&lt;br&gt;&#091;/code&#093;&lt;br&gt;2.&lt;br&gt;&#091;code&#093;&lt;br&gt;# rename .new.jpg .jpg *.jpg&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;The rename command is part  of  the  util-linux  package  &lt;br&gt;and  is  available  from ftp://ftp.kernel.org/pub/linux/utils/util-linux&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Как выделить три последних символа имени файла? (sany)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9142.html#9</link>
    <pubDate>Mon, 23 May 2011 11:33:40 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;$&#123;ii&#037;.*&#125;.new.$&#123;ii##*.&#125;&quot; &lt;br&gt;&amp;gt;&amp;gt; name=$(echo &quot;$&#123;ii&#037;.*&#125;&quot; &amp;#124; sed &quot;s&amp;#124;&#092;.new$&amp;#124;&amp;#124;&quot;) &lt;br&gt;&amp;gt; А чего второе без sed-а не сделал?&lt;br&gt;&lt;br&gt;хорошее замечание, вот&lt;br&gt;for ii in *;do mv -- &quot;$ii&quot; &quot;$&#123;ii&#037;.new.*&#125;.$&#123;ii##*.&#125;&quot;;done&lt;br&gt;</description>
</item>

</channel>
</rss>
