-3

我有一个如下给出的文件,我需要从下面给定的文本文件中访问特定的字符串。

**  The gSOAP code generator for C and C++, soapcpp2 release 2.8.12
**  Copyright (C) 2000-2012, Robert van Engelen, Genivia Inc.
**  All Rights Reserved. This product is provided "as is", without any warranty.
**  The soapcpp2 tool is released under one of the following two licenses:
**  GPL or the commercial license by Genivia Inc.

如何使用 shell 脚本从上述文本文件中获取数字 2.8.12,

4

1 回答 1

1

这是 AWK 中的一个程序。把它放在一个文本文件中,在文本文件上设置执行权限,然后使用文件中的输入运行它。

#!/usr/bin/awk -f

/gSOAP code generator/ {
    LAST = NF
    P1 = LAST - 1
    P2 = LAST - 2

    if ($P2 == "soapcpp2" && $P1 == "release")
        print $LAST
    }

这些天我更喜欢 Python,所以这里也有一个 Python 解决方案。

#!/usr/bin/python

import sys

for line in sys.stdin:
    if "gSOAP code generator" in line:
        lst = line.split()
        if lst[-3] == "soapcpp2" and lst[-2] == "release":
            print(lst[-1])
            break

如果您将任一程序放入名为“foo”的文件中并保存,则可以执行以下操作:

# chmod +x ./foo
# ./foo < file_to_search
于 2013-01-21T09:23:22.017 回答