删除行开头的空白空间(空白空间的大小不是恒定的)

时间:2017-10-11 18:18:49

标签: bash csv sed uniq

我是使用sed的初学者。我正在尝试使用它来编辑uniq -c结果以删除数字前的空格,以便我可以将其转换为可用的.tsv

我得到的最远的是使用:

$ sed 's|\([0-9].*$\)|\1|' comp-c.csv

输入:

     8 Delayed speech and language development
    15 Developmental Delay and additional significant developmental and morphological phenotypes referred for genetic testing
     4 Developmental delay AND/OR other significant developmental or morphological phenotypes
     1 Diaphragmatic eventration
     3 Downslanted palpebral fissures

此输出与输入相同;它识别(我用一个简单的替代品测试过它)第一个数字,但也出于某种原因拖累了之前的空白空间。

为了澄清,我想在数字之前删除所有空格;硬编码简单的修剪不起作用,因为有些行包含双/三位数字,因此在数字之前没有相同数量的空白空间。

奖励指出某种方式可以产生可用的uniq -c结果,而不会在空白处进行操作。

1 个答案:

答案 0 :(得分:2)

这就是写正确的正则表达式:

uniq -c

也就是说, nothing 替换行(尽可能多)的零个或多个空格。

  

奖励指出某种方式可以产生可用的uniq结果,而不会在空白处进行操作。

{{1}}命令没有标志来打印其输出而没有前导空格。除了自己去除它之外别无他法。