Bash Can';t根据分隔符拆分文本文件
我正在运行Ubuntu 18.04 LTS。我有一个名为“group_keys”的文本文件,其中包含许多公钥,我想根据分隔符拆分这些公钥Bash Can';t根据分隔符拆分文本文件,bash,ubuntu,split,Bash,Ubuntu,Split,我正在运行Ubuntu 18.04 LTS。我有一个名为“group_keys”的文本文件,其中包含许多公钥,我想根据分隔符拆分这些公钥 -----BEGIN PUBLIC KEY----- 然后分别按顺序输出每个键。例如,如果有三个键,那么输出将是三个文件,名称为“person_1_key”、“person_2_key”和“person_3_key” 该文件如下所示: 我在使用split和csplit执行此操作时遇到困难。我输入的命令不起作用。这是我尝试过的 使用拆分: 这并没有输出任何东
-----BEGIN PUBLIC KEY-----
然后分别按顺序输出每个键。例如,如果有三个键,那么输出将是三个文件,名称为“person_1_key”、“person_2_key”和“person_3_key”
该文件如下所示:
我在使用split
和csplit
执行此操作时遇到困难。我输入的命令不起作用。这是我尝试过的
使用拆分:
这并没有输出任何东西,而是给了我信息
split: multi-character separator ‘-----BEGIN PUBLIC KEY-----’
使用csplit:
这只给了我两个文件,“xx00”和“xx01”,但它没有分割行。“xx00”完全为空,“xx01”只是原始文件。这应该可以:
awk'/----开始公钥----/{n++}{print>“个人密钥”}组密钥
尝试
csplit -z -f person_ -b '%d_key' group_keys '/-----BEGIN PUBLIC KEY-----/' '{*}'
这将输出四个文件person\u 0\u key
,person\u 1\u key
,person\u 2\u key
,person\u 3\u key
,其中
禁止生成空文件-z
设置输出文件名前缀-f person
设置输出文件名后缀-b“%d_key”
设置重复计数(尽可能多地重复)“{*}”
csplit group_keys "-----BEGIN PUBLIC KEY-----"
csplit -z -f person_ -b '%d_key' group_keys '/-----BEGIN PUBLIC KEY-----/' '{*}'