我想创建脚本,找到我选择的单词数量,在我选择的文件中。
这是我的剧本:
#!/bin/bash
echo "Iveskite reiksme kurios kurios kurios ieskosime faile"
read reiksme
echo "Nurodykite faila kuriame ieskosime reiksmes"
read failas
kiek=$(awk '/$reiksme/' $failas | wc -l)
echo $kiek > kiek.txt
如果$ failas包含如下行:
$reiksme
$reiksme
$reiksme
那么没关系,但如果$failas
包含如下行:
$reiksme $reiksme
random word $reiksme $reiksme
random random $reiksme
然后我的脚本无法计算多少单词。
答案 0 :(得分:1)
awk只是在线上分裂。你可以通过几个步骤完成它,虽然可能有更简单的方法:
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void ( ^)( NSDictionary * ))reply
{
__block UIBackgroundTaskIdentifier watchKitHandler;
watchKitHandler = [[UIApplication sharedApplication] beginBackgroundTaskWithName:@"backgroundTask"
expirationHandler:^{
watchKitHandler = UIBackgroundTaskInvalid;
}];
if ( [[userInfo objectForKey:@"request"] isEqualToString:@"getData"] )
{
// get data
// ...
reply( data );
}
dispatch_after( dispatch_time( DISPATCH_TIME_NOW, (int64_t)NSEC_PER_SEC * 1 ), dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^{
[[UIApplication sharedApplication] endBackgroundTask:watchKitHandler];
} );
}
用换行符替换所有空格,然后使用grep(或者你的awk,如果你愿意的话)来找到你想要的东西,然后计算它们
答案 1 :(得分:0)
我自己找到了答案。我刚刚改变了
kiek=$(awk '/$reiksme/' $failas | wc -l)
到
kiek=$(tr -cs 'A-Za-z' '\n' < $failas | grep -c "$reiksme")
答案 2 :(得分:0)
使用grep
执行此操作的最佳方法是使用this post中所述的-o
选项。把它放在一起为你:
kiek=$(grep -o "${reiksme}" | wc -l)