How to generate letter sequence list in fish shell

2019-02-26 10:08发布

In bash you can generate letter sequence easily as "{a..z}", for example

$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

How to do that in the fish shell instead?

3条回答
干净又极端
2楼-- · 2019-02-26 10:23

Linux has the seq command for this, and it works with fishshell:

$ for f in (seq 1 10)
    echo $f
end
1
2
3
4
5
6
7
8
9
10
$
查看更多
狗以群分
3楼-- · 2019-02-26 10:26

Fish doesn't support ranges in brace expansion, only comma-separated values: {a,b,c}.

Thus, we are forced to search for a command capable of generating such sequence. For example, you can use Perl:

for c in (perl -e '$,="\n"; print ("a" .. "z")')
  printf ">> %s\n" "$c"
end

where $, is the output field separator.

Output

>> a
>> b
...(skipped)
>> y
>> z

You may find this table useful.

查看更多
Rolldiameter
4楼-- · 2019-02-26 10:45

One way is to use printf and seq.

echo -e (printf '\\\x%x\n' (seq 97 122))

This works by generating "\x61 \x62 \x63 ... \x7a" which is then interpreted by "echo -e" as hex character codes.

查看更多
登录 后发表回答