我有一个按字母顺序排列的文件。文件从 0-9 开始直到 az。示例
000dasd
001dss
awer
addd
alko
babb
bobb
...
zzasd
由于文件非常大,我想将其分成多个文件,每个文件中我将存储不同的块 - 一个文件包含以 0-9 开头的所有行,一个文件包含 [ad],一个文件包含 [eh],等等。
目前,我有一个 grep 命令可以执行此操作,但只针对一个字符。由于我对 Linux、grep、awk 和 shell 脚本还不是很熟悉,因此我在这里需要一些帮助。
这就是我对所有以“a”开头的行所做的操作
grep "^[[:blank:]]*a" file.txt > a-file.txt
答案1
您可以使用 [] 来括起一系列字符,例如 [0-9] 将匹配所有阿拉伯数字,[ad] 将匹配字母 a、b、c 和 d 等。
所以你可以跑
grep "^[0-9]" file.txt > digit-file.txt
grep "^[a-d]" file.txt > a-d-file.txt
ETC