【问题标题】:awk script to remove trailing and leading underscores用于删除尾随和前导下划线的 awk 脚本
【发布时间】:2013-10-17 10:38:15
【问题描述】:

要在第三个字段中保留数字低于 100(百)的行,我如何使用 awk 脚本处理尾随和前导下划线。

这里是示例输入:

asd 5.0 _84_ 34
sds 3.8 _340_ 56
sds 3.8  99 56
sds 3.8 _340_ 56          
ddd 288 _26_ 45
sdf 321 _374_ 53 
tyu 321 _39_ 89 
sds 3.8 120 56 
wer 3.8 _28_ 345
sds 3.8  45 56
tre 230 _265_ 90  
rtu 389 _372_ 45
bnm 965 _270_ 745
fgh 856 _44_ 346
sds 3.8 107 56

预期输出将是:

 asd 5.0 _84_ 34
 sds 3.8  99 56            
 ddd 288 _26_ 45
 tyu 321 _39_ 89 
 wer 3.8 _28_ 345
 sds 3.8  45 56       
 fgh 856 _44_ 346

【问题讨论】:

    标签: awk


    【解决方案1】:

    像这样,例如:

    $ awk -F_ '$2>=100' file
    _340_ 
    _374_  
    _265_  
    _372_ 
    _270_ 
    

    说明

    • -F__ 定义为字段分隔符。
    • $2>=100 获取第二个字段大于或等于 100 的记录。在这种情况下,它执行默认的 awk 操作:{print $0}

    【讨论】:

    • 它在这种情况下有效,但如果每行上还有其他字段怎么办,例如:aa bc 84 wer, se dffg 340 er lmn ....我们如何处理,即如果数字在第三个字段上,如图所示...
    • 然后更新您的示例输入。显然我的回答是基于您提供的示例输入:)
    • @user2677682 使用您更新的输入,我的命令仍然可以正常工作。检查并记住:由于您是新来的,如果您的问题已经解决,请不要忘记将答案标记为已接受。您可以单击答案旁边的复选标记将其从空心切换为绿色。如有任何疑问,请参阅Help Center > Asking
    猜你喜欢
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2013-02-10
    • 2017-09-17
    相关资源
    最近更新 更多