擅长:python、mysql、java
<p>废话连篇。CSH不好。巴什很好。Python更好。呸,骗子。我还是用TCSH。。。在</p>
<pre><code>% set i = 1
% foreach FILE ( `ls *[0-9].png | sort -n` )
echo mv $FILE `printf %04d $i`.png ; @ i ++
end
</code></pre>
<p>输出:</p>
^{pr2}$
<hr/>
<hr/>
<p><strong>回复评论:</strong></p>
<p><i>仍需要c_用户\u johnny_桌面图像。</i></p>
<p>好的,那么使用:</p>
<pre><code>echo mv $FILE c_users_johnny_desktop_images.`printf %04d $i`.png ; @ i ++
</code></pre>
<p>我的例子不难读。在</p>
<p>更正:也许您是想自动提取当前目录名并合并它。E、 g.:</p>
<pre><code>echo mv $FILE `echo $cwd | sed -e 's|^/||' -e 's|/|_|g'`.`printf %04d $i`.png ; @ i ++
</code></pre>
<p>-</p>
<p><em>tcsh中是否没有globs?你对ls的解析似乎很可怕</em></p>
<p>当然有球。这就是我们要传递给<strong>ls</strong>的内容。但是globbing给了我们一个按字母顺序排序的列表,如1,2,20,21,3,50。我们需要一个数字排序,如1,2,3,20,21,50。数字中没有前导零时的标准问题。在</p>
<p><strong>sort-n</strong>执行数字排序。<strong>ls</strong>在每个文件名后给我们一个换行符。我们可以很容易地写下:</p>
<pre><code>foreach FILE ( `echo *[0-9].png | tr ' ' '\012' | sort -n` )
</code></pre>
<p>但是我很懒,<strong>ls</strong>为我做了新的一步。有什么可怕的?在</p>