Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Bash中循环遍历字母表_Bash_Loops_For Loop - Fatal编程技术网

在Bash中循环遍历字母表

在Bash中循环遍历字母表,bash,loops,for-loop,Bash,Loops,For Loop,我想mv将以“x”开头的所有文件发送到目录“x”;比如: mv path1/x*.ext path2/x 对所有字母a,…,z都这样做 如何编写一个bash脚本,使字母表中出现“x”循环?这应该让您开始: for letter in {a..z} ; do echo $letter done 下面介绍如何使用嵌套大括号展开生成西班牙语字母表 for l in {{a..n},ñ,{o..z}}; do echo $l ; done | nl 1 a ... 14 n 15 ñ 1

我想
mv
将以“x”开头的所有文件发送到目录“x”;比如:

mv path1/x*.ext path2/x
对所有字母a,…,z都这样做


如何编写一个bash脚本,使字母表中出现“x”循环?

这应该让您开始:

for letter in {a..z} ; do
  echo $letter
done

下面介绍如何使用嵌套大括号展开生成西班牙语字母表

for l in {{a..n},ñ,{o..z}}; do echo $l ; done | nl
1  a
 ...
14  n
15  ñ
16  o
...
27  z
或者干脆

echo -e {{a..n},ñ,{o..z}}"\n" | nl
如果要生成29个字符的西班牙语字母表

echo -e {{a..c},ch,{d..l},ll,{m,n},ñ,{o..z}}"\n" | nl
法语字母表或德语字母表也可以采用类似方法。

使用:

如果要从文件名中去掉前导的[a-z]字符,则更新的perlexpr将是:

rename 's|path1/([a-z])(.*)|path2/$1/$2' path1/{a..z}*
也要大写

for letter in {{a..z},{A..Z}}; do
  echo $letter
done

这个问题和答案在一定程度上帮助了我解决了问题。
我需要在bash中翻阅字母表的部分

虽然扩张

让事情变得更简单:

START=A
STOP=D
for letter in $(eval echo {$START..$STOP}); do
    echo $letter
done
其结果是:

A
B
C
D
希望这对那些寻找我必须解决的问题的人有所帮助,
在这里也结束了

我可以问一下为什么在第4行和第5行用大括号括起x吗?这里不需要它,但它很有效,使参数更突出;)通常,
“$x”
就足够了,这是一个更好的方法,可以让它脱颖而出。@WeijunZhou如果您想展开变量x,后面跟着字母“y”和“z”,这是个问题。如果您试图展开
“$xyz”
,解释器会认为您试图打印一个名为xyz的变量,而
“${x}yz”
会让解释器确切地知道您试图做什么。我的意思是
“$x”yz
。避免拆分字母表的丑陋替代方法:
表示j in$(表示i in$(echo{a..z}chll);do echo$i;done | sort | xargs);重复“你好-$j”;完成
START=A
STOP=D
for letter in $(eval echo {$START..$STOP}); do
    echo $letter
done
A
B
C
D