我有几个字符串,如下所示
internal func applicationWillResignActive(_ application: UIApplication) -> <<error type>>
internal func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]?) -> Bool
internal func helloWorld()
在这些行中,我想获取 ->
之后出现的函数的返回类型, 但是函数可能没有返回类型(在这种情况下它默认为 Void
我需要编写一个 shell 脚本,最好使用 awk
或 sed
这可以让我返回类型。但是,它应该在第一种和第三种情况下返回 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/