婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Shell腳本實現查找字符串中某字符最后出現的位置

Shell腳本實現查找字符串中某字符最后出現的位置

熱門標簽:電銷機器人 劍魚 衛星地圖標注地名 申請公司400電話要注意什么 地圖標注輻射圖案 寧波智能外呼系統公司 安裝外呼系統費用 曲阜400電話辦理 聯通電話機器人怎么接 奧維互動地圖標注參數

需要對字符串查找其中某個字符最后出現的位置,這個在PHP (strrpos)或者Perl (rindex)里面都有現成函數可用的功能,在Shell里面居然一時想不出個道道來。在論壇上發貼也沒人解答(不知道是問題太簡單還是真的很高深...)。

因為事情緊急等不得,于是求救大學同學。Pacman不愧是個中高手,三兩下點醒夢中人:

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寫了個小程序來實現rindex的功能,gcc rindex.c -o rindex 之后shell就擁有可以調用的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獲取字符串長度的多種方法總結
  • 用Shell判斷字符串包含關系的方法小結
  • linux shell字符串內置的常用操作(獲取長度、查找、替換)
  • Shell中判斷字符串是否為數字的6種方法分享
  • Shell腳本計算字符串長度和判斷字符串為空小技巧
  • shell編程中的字符串截取方法小結
  • Shell腳本實現簡單分割字符串
  • Linux shell數組循環的實例詳解
  • linux shell實現求一個多維數組中的最大和最小值
  • shell腳本編程之數組
  • Shell中創建序列和數組(list、array)的方法
  • shell腳本字符串和數組的使用操作方法

標簽:遵義 大興安嶺 江西 仙桃 三門峽 安康 大慶 上饒

巨人網絡通訊聲明:本文標題《Shell腳本實現查找字符串中某字符最后出現的位置》,本文關鍵詞  Shell,腳本,實現,查找,字符串,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell腳本實現查找字符串中某字符最后出現的位置》相關的同類信息!
  • 本頁收集關于Shell腳本實現查找字符串中某字符最后出現的位置的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 临澧县| 吉木乃县| 南阳市| 平江县| 承德市| 威宁| 五常市| 辽中县| 黄平县| 昌宁县| 阜新| 措勤县| 天水市| 丹阳市| 甘肃省| 垫江县| 招远市| 亳州市| 平凉市| 宁强县| 徐闻县| 略阳县| 蓬安县| 青河县| 大名县| 湖州市| 普洱| 本溪| 永福县| 临沂市| 麻阳| 旺苍县| 普定县| 西和县| 广德县| 敦化市| 吉林市| 长葛市| 阳新县| 慈溪市| 保定市|