【问题标题】:UNIX- How to cut specific characters in the particular sentenceUNIX-如何剪切特定句子中的特定字符
【发布时间】:2014-09-04 12:54:13
【问题描述】:

如何截取特定句子中的特定字符?

输入字符串:

7,717   http-16502-2    INFO    com.****.mxxdctm.cscxscxs**-    new name:/opt/docu/fs1_1/fs_cache/09vvadadaca.mghyyysss.excel12book
7,717   http-16502-2    INFO    com.****.mxxdctm.cscxscxs**-    new name:/opt/docu/fs1_1/fs_cache/09vvadadaca.bcdvsxsas.pdf
7,717   http-16502-2    INFO    com.****.mxxdctm.cscxscxs**-    new name:/opt/docu/fs1_1/fs_cache/09vvadadaca.nmncdvsxsas.pdf

我想把上面例句的文件扩展名之前的字符串剪掉。

我正在寻找以下输出:

bcdvsxsas
mghyyysss
nmncdvsxsas

【问题讨论】:

    标签: linux unix sed


    【解决方案1】:
    awk -F. '{print $(NF-1)}' inFile.txt
    

    【讨论】:

    • 非常感谢..我是 unix 新手。能否请您解释一下上述命令。以便我可以用来剪切其他字符串
    • @senthilkumar 在解决方案中,我们使用. 作为字段分隔符来拆分字段。 NF 是一个 awk 内置变量,用于保存字段数。 $NF 保存最后一个字段的值,因此通过打印$(NF-1),我们将打印每一行的倒数第二个字段,而无需硬编码,我们需要每行的第 5 个字段。它类似于cut -d\. -f5 inFile.txt。如果您的数据是一致的,那么硬编码就很好了。但是,如果数据不一致,那么从行尾回溯并选择倒数第二个字段是一种更明智的解决方法。
    • 可能需要在声明 NF{print $(NF-1)} 之前添加 NF,因为空行会导致 awk 中止
    猜你喜欢
    • 2013-08-26
    • 2014-08-11
    • 1970-01-01
    • 2013-06-01
    • 2020-08-08
    • 1970-01-01
    • 2021-01-08
    • 2013-01-14
    • 1970-01-01
    相关资源
    最近更新 更多