将 ID 列表拆分为整数和字符串?

将 ID 列表拆分为整数和字符串?

我有一个 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

相关内容