Shell腳本實(shí)現(xiàn)查找字符串中某字符最后出現(xiàn)的位置
需要對(duì)字符串查找其中某個(gè)字符最后出現(xiàn)的位置,這個(gè)在PHP (strrpos)或者Perl (rindex)里面都有現(xiàn)成函數(shù)可用的功能,在Shell里面居然一時(shí)想不出個(gè)道道來。在論壇上發(fā)貼也沒人解答(不知道是問題太簡(jiǎn)單還是真的很高深...)。
因?yàn)槭虑榫o急等不得,于是求救大學(xué)同學(xué)。Pacman不愧是個(gè)中高手,三兩下點(diǎn)醒夢(mèng)中人:
rindex.sh代碼:
#!/bin/bash
strToCheck=$1;
charToSearch=$2;
let pos=`echo "$strToCheck" | awk -F ''$charToSearch'' '{printf "%d", length($0)-length($NF)}'`
echo "char $charToSearch lastpos is: $pos"
使用示例:
[zeal]$ sh rindex.sh www.zeali.net .
char . lastpos is: 10
Calfen則提供了一種比較自力更生的方式:自己用c寫了個(gè)小程序來實(shí)現(xiàn)rindex的功能,gcc rindex.c -o rindex 之后shell就擁有可以調(diào)用的rindex了 :)
rindex.c代碼:
#include <strings.h>
int main(int argc, char *argv[]){
char* wholeWord;
char subChar;
char* subWord;
int ret;
if(argc!=3){
printf("Use:rindex word char\n");
exit(0);
}
wholeWord=argv[1];
subChar=*argv[2];
subWord=rindex(wholeWord,subChar);
if(0 == subWord)
ret = 0;
else
ret = (subWord-wholeWord+1);
printf("%d\n",ret);
}
- Shell獲取字符串長度的多種方法總結(jié)
- 用Shell判斷字符串包含關(guān)系的方法小結(jié)
- linux shell字符串內(nèi)置的常用操作(獲取長度、查找、替換)
- Shell中判斷字符串是否為數(shù)字的6種方法分享
- Shell腳本計(jì)算字符串長度和判斷字符串為空小技巧
- shell編程中的字符串截取方法小結(jié)
- Shell腳本實(shí)現(xiàn)簡(jiǎn)單分割字符串
- Linux shell數(shù)組循環(huán)的實(shí)例詳解
- linux shell實(shí)現(xiàn)求一個(gè)多維數(shù)組中的最大和最小值
- shell腳本編程之?dāng)?shù)組
- Shell中創(chuàng)建序列和數(shù)組(list、array)的方法
- shell腳本字符串和數(shù)組的使用操作方法
相關(guān)文章
Shell腳本實(shí)現(xiàn)溫和方式重啟Centos系統(tǒng)
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)溫和方式重啟Centos系統(tǒng),本文腳本主要目的是用于重啟后臺(tái)比較重要的進(jìn)程,需要的朋友可以參考下2014-12-12shell腳本快速刪除服務(wù)器指定目錄下文件(最新方法)
這篇文章主要介紹了shell腳本快速刪除服務(wù)器指定目錄下文件(最新方法),包括刪除4天前的文件及只刪除指定文件,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07Linux shell腳本編程if語句的使用方法(條件判斷)
這篇文章主要介紹了Linux shell腳本編程if語句的使用方法,大家參考使用吧2013-12-12區(qū)分shell中的 反引號(hào)、$()和${}
這篇文章主要介紹了區(qū)分shell中的 反引號(hào)、$()和${},幫助大家更好的理解和學(xué)習(xí)shell,感興趣的朋友可以了解下2020-08-08