我有一个 ID 列表(总共 20 万个),我想编写一个 Shell 脚本来使用 Shell 脚本拆分 ID(字符串和整数)。示例如下:
IDlist.txt
:
| LT345 |
| R567 |
| LT9 |
| MRTD002 |
| MK53 |
| RR567 |
我已经使用以下脚本从 IDlist.txt 中提取了 id。
awk '{print $2}' IDlist.txt > newId_list.txt
newId_list.txt
:
LT345
R567
LT9
MRTD002
MK53
RR567
我如何拆分如下所示的 newId_list.txt ID?
result_string.txt
:
LT
R
LT
MRTD
MK
RR
result_integer.txt
:
345
567
9
002
53
567
答案1
您可以使用grep
可以选择-o
匹配某些字符并仅输出这些字符。例如:
% grep -E -o '[A-Z]+' newId_list.txt
LT
R
LT
MRTD
MK
RR
% grep -E -o '[0-9]+' newId_list.txt
345
567
9
002
53
567
这甚至可以直接在原版上运行IDlist.txt
。
答案2
另一种方法是使用tr
删除不需要的符号:
tr -d \|\ [:alpha:] < idlist.txt
345
567
9
002
53
567
tr -d \|\ [:digit:] < idlist.txt
LT
R
LT
MRTD
MK
RR