swift - 使用 awk/sed 获取 swift 函数的返回类型

标签 swift shell awk sed

我有几个字符串,如下所示

internal func applicationWillResignActive(_ application: UIApplication) -> <<error type>>

internal func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]?) -> Bool

internal func helloWorld()

在这些行中,我想获取 -> 之后出现的函数的返回类型, 但是函数可能没有返回类型(在这种情况下它默认为 Void

我需要编写一个 shell 脚本,最好使用 awksed这可以让我返回类型。但是,它应该在第一种和第三种情况下返回 Void。

我尝试了什么? cut -d ">" -f 2 <<< "$string" - 但是,这非常简单,即使在简单的第三种情况下也能正常工作,它返回原始字符串。

最佳答案

您可以使用:

awk -F"-> *" 'NF>0{print(NF==1?"Void":$NF=="<<error type>>"?"Void":$NF)}' file

现场观看:

$ cat file
internal func applicationWillResignActive(_ application: UIApplication) -> <<error type>>

internal func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]?) -> Bool

internal func helloWorld()

$ awk -F"-> *" 'NF>0{print(NF==1?"Void":$NF=="<<error type>>"?"Void":$NF)}' file
Void
Bool
Void

关于swift - 使用 awk/sed 获取 swift 函数的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41098262/

相关文章:

ios - Firebase 无效的位码版本

ios - 将字符串转换为 PFObject.. 解析

python - 如何制作基于 web 的 python 交互式 shell

bash - 查找序列号中的空白

linux - 如何在参数中插入单独的行(元素)

awk - shell脚本中增加输入变量号

ios - 使用户仅在完成操作 IOS Swift 3 后才访问 View

ios - 快速将文本字段传递给第二个 View Controller 中的标签

function - 在系统中注册自定义 shell 函数 (OSX)

linux - 从文件列表变量中删除所有非目录