導航:首頁 > 操作系統 > linux字元串

linux字元串

發布時間:2022-02-06 00:04:56

Ⅰ 在linux命令行中,怎麼樣從一行字元中輸出指定格式的字元串

command | sed 's#.*\([0-9][0-9]:[0-9][0-9]\).*#\1'
# command是你那條輸出的命令,將結果用管道傳遞給sed,匹配 nn:nn 這樣的格式

Ⅱ 總結linux替換字元串的幾種方法

一)通過vi編輯器來替換。
vi/vim 中可以使用 :s 命令來替換字元串。
:s/well/good/ 替換當前行第一個 well 為 good
:s/well/good/g 替換當前行所有 well 為 good
:n,$s/well/good/ 替換第 n 行開始到最後一行中每一行的第一個 well 為 good
:n,$s/well/good/g 替換第 n 行開始到最後一行中每一行所有 well 為 good
n 為數字,若 n 為 .,表示從當前行開始到最後一行
:%s/well/good/(等同於 :g/well/s//good/) 替換每一行的第一個 well 為 good
:%s/well/good/g(等同於 :g/well/s//good/g) 替換每一行中所有 well 為 good
可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符
:s#well/#good/# 替換當前行第一個 well/ 為 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路徑/usr/bin換成/bin

(二)直接替換文件中的字元串。(此法不用打開文件即可替換字元串,而且可以批量替換多個文件。)
1.perl命令替換,參數含義如下:
-a 自動分隔模式,用空格分隔$_並保存到@F中。相當於@F = split 」。分隔符可以使用-F參數指定
-F 指定-a的分隔符,可以使用正則表達式
-e 執行指定的腳本。
-i<擴展名> 原地替換文件,並將舊文件用指定的擴展名備份。不指定擴展名則不備份。
-l 對輸入內容自動chomp,對輸出內容自動添加換行
-n 自動循環,相當於 while(<>) { 腳本; }
-p 自動循環+自動輸出,相當於 while(<>) { 腳本; print; }
用法示例:
perl -p -i.bak -e 's/foo/bar/g' *.c
將所有C程序中的foo替換成bar,舊文件備份成.bak

perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
將當前文件夾下lishan.txt和lishan.txt.bak中的「shan」都替換為「hua」

perl -i.bak -pe 's/(d+)/ 1 + $1 /ge' file1 file2
將每個文件中出現的數值都加一

2.sed命令下批量替換文件內容

格式: sed -i "s/查找欄位/替換欄位/g" `grep 查找欄位 -rl 路徑` 文件名

-i 表示inplace edit,就地修改文件

-r 表示搜索子目錄

-l 表示輸出匹配的文件名
s表示替換,d表示刪除

示例:sed -i "s/shan/hua/g" lishan.txt

把當前目錄下lishan.txt里的shan都替換為hua 各個Linux詳細命令介紹及應用可如下進行查找

Ⅲ Linux下字元串截斷符是什麼

是不是"*fo"喔..
說實在的LINUX我還真的很少去接觸過. 答案補充 我更想問你為什麼會去理解這個如此費解的東西呢>??
WINS 的字元串確實有%00的字元串數字.但這個是變數也... 答案補充 function trimBody($theText, $lmt=500, $s_chr="\n", $s_cnt=2)

一個實現字元串 截斷的函數。

function trimBody($theText, $lmt=500, $s_chr="\n", $s_cnt=2) {
$pos = 0;
$trimmed = FALSE;
for ($i = 1; $i <= $s_cnt; $i ) {
if ($tmp = strpos($theText, $s_chr, $pos 1)) {
$pos = $tmp;
$trimmed = TRUE;
} else {
$pos = strlen($theText) - 1;
$trimmed = FALSE;
break;
} 答案補充 }
$theText = substr($theText, 0, $pos);
if (strlen($theText) > $lmt) {
$theText = substr($theText, 0, $lmt);
$theText = substr($theText, 0, strrpos($theText," "));
$trimmed = TRUE;
}
if ($trimmed) $theText .= "...";
return $theText;
} 答案補充 http://www.diybl.com/course/6_system/linux/linuxjq/2007211/16882.html
我也沒有想過跟你吵的意思.
我能力有限喔..只能給你找資料..
你參考吧.關於LINUX的..我不了解... 答案補充 暈咯..要讓我去編譯LINUX這個第8個元素..我要三個月.不吃不喝不睡覺..
而且是系統自加的..那我只能說..除非我拿到LINUX開發商的資源.. 答案補充 小弟無能..盡力了..不敢當..以後要好好專心研究下LINUX 答案補充 - -!那個好像是變數吧...

Ⅳ Linux 命令,查看字元是否出現在某字元串中

從文件內容查尋匹配指定字元串的行:

$ grep "被查尋的字元串" 文件名

從文件內容查尋與正則表達式匹配的行:

$ grep –e 「正則表達式」 文件名

查尋時不區分大小寫:

$ grep –i "被查尋的字元串" 文件名

查尋匹配的行數:

$ grep -c "被查尋的字元串" 文件名

從文件內容查尋不匹配指定字元串的行:

$ grep –v "被查尋的字元串" 文件名

從根目錄開始查尋所有擴展名為.log的文本文件,並找出包羅」ERROR」的行

更多請網路一下 linux查找字元串

Ⅳ 在linux中查找字元串用什麼命令

Linux查找字元串用grep命令,可以查找文件,也可以在命令的結果中查找。如果是在文件中查找字元串,用法是:
grep 用英文單引號括起來的字元串 文件名
如果是在命令的顯示結果中查找,需要用管道符將命令與grep連接起來,像這樣:
last | grep 'root'
(在last命令的顯示結果中查找字元串root)

Ⅵ linux如何獲取兩個字元串之間的內容

你可以使用linux cut 選取命令。
方法:
1. 你把上面三行寫入一個文件中 vim file
2. 測試cut命令 你的shell輸入:cut -d '=' -f 2 file
解釋:以=為分隔符,獲取第二部分,獲取=後面的部分
3. 熟悉cut命令後,你在shell輸入
cut -d '=' -f 2 file | cut -d '"' -f 1
解釋:第一次執行的輸出作為管道命令 | 後面命令的參數。
獲取第一個 = 後面的部分,再獲取第一個 " 前面的部分。
你可以搜索linux cut命令

Ⅶ linux c語言字元串比較問題

linux中,c語言字元串比較採用strcmp()函數

在linux命令行下,man strcmp,可以看到函數說明:

$manstrcmp
...
NAME
strcmp,strncmp-comparetwostrings
SYNOPSIS
#include<string.h>
intstrcmp(constchar*s1,constchar*s2);
DESCRIPTION
Thestrcmp().Itreturnsanintegerlessthan,equalto,orgreaterthanzeroifs1isfound,respectively,tobelessthan,tomatch,orbegreaterthans2.
strcmp函數比較兩個字元串s1和s2.函數返回小於0,等於0,或大於0的整數,分別對應s1<s2,s1=s2,s1<s2.

比如 s1 = "good" s2="...this is good", 從s2取後四位進行兩個字元串比較,代碼如下:

#include<stdio.h>
#include<string.h>
intmain()
{
char*s1="good",*s2="...thisisgood";
intlen=strlen(s2);
if(len>=4)//如果串長超過4位,則移動指針到最後四位的位置
s2=s2+len-4;
printf("s2=%s ",s2);//輸出移位後的字元串內容
printf("compares1,s2=%d ",strcmp(s1,s2));//輸出0,表示相同
return0;
}

Ⅷ linux有什麼命令可以提取指定的字元串

1. 例子

提取字元串以下字元串 error: 與 : 之間的子字元串。並消除空格。

"src/network/misc/nv_net_udp.c:17:fatalerror:nv_net_tools.h:Nosuchfileordirectory"1

2. 命令

echo"src/network/misc/nv_net_udp.c:17:fatalerror:nv_net_tools.h:Nosuchfileordirectory"|sed-r's/.*error:(.*):.*/1/'|seds/[[:space:]]//g1

該命令涉及 sed 命令的』反向引用』章節, 1 代表 (.*)

3. 結果

nv_net_tools.h1

4. 拓展 : 解決編譯錯誤

leon$makeclean&&makeallarm-hisiv100nptl-linux-gcc-c-fPIC-Wall-g-ggdb-O0-DHI3518_CHIP-DLINUX-I./src/include-I./src/include/common-I./src/include/camera-I./src/include/conf-I./src/include/log-I./src/include/network-I./src/include/upnp-I/home/leon/nvc/arm-hisiv100nptl-linux/includesrc/common/nv_conf.c-obuild/objs/hi3518/src/common/nv_conf.o/*省略中間部分*/arm-hisiv100nptl-linux-gcc-c-fPIC-Wall-g-ggdb-O0-DHI3518_CHIP-DLINUX-I./src/include-I./src/include/common-I./src/include/camera-I./src/include/conf-I./src/include/log-I./src/include/network-I./src/include/upnp-I/home/leon/nvc/arm-hisiv100nptl-linux/includesrc/network/misc/nv_net_udp.c-obuild/objs/hi3518/src/network/misc/nv_net_udp.o
src/network/misc/nv_net_udp.c:17:fatalerror:nv_net_tools.h:Nosuchfileordirectory
compilationterminated.make:***[build/objs/hi3518/src/network/misc/nv_net_udp.o]Error112345678

note: 在以上編譯過程中我們發現,編譯器提示說找不到nv_net_tools.h文件,而現實中我們也不需要這個文件的包含了,需要刪除包含nv_net_tools.h 文件中的該行代碼。

5.字元串提取 (命令行)

目標字元串

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":012

需要提取 from , to, url , md5, level 等5個關鍵字後面的內容。

//提取 from 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*from:(.*)/1/"|cut-d','-f1


//提取 to 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*to:(.*)/1/"|cut-d','-f1


//提取 url 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*url:(.*)/1/"|cut-d','-f1


//提取 md5 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*md5:(.*)/1/"|cut-d','-f1


//提取 level 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*level:(.*)/1/"|cut-d','-f112345678910111213141516

6.字元串提取 (腳本文件)

ret_val=""from":"0804020982","to":"0804020998","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0"
echoret_valis:[$ret_val]from="$(echo$ret_val|sed's/.*from":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echofrom:$from
to="$(echo$ret_val|sed's/.*to":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echoto:$to
url="$(echo$ret_val|sed's/.*url":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echourl:$url
md5="$(echo$ret_val|sed's/.*md5":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echomd5:$md5
level="$(echo$ret_val|sed's/.*level":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echolevel:$

執行結果:

ret_valis:["from":"0804020982","to":"0804020998","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0]
from:0804020982
to:0804020998
url:http://cn.update.mynetvue.com:8060/firmware/.tar.gzmd5:
level:0

I.總結

要注意命令行執行,與腳本文件執行之間的差異性。

Ⅸ Linux字元串截取幾種方法

簡單介紹下Shell字元串截取的詳細方法,如截取指定字數、按指定的字元串截取、按指定要求分割。

一、Linux shell 截取字元變數的前8位,有方法如下:

Ⅹ linux 中c語言字元串的結束符是什麼

c語言的字元串是一種標准

不管是在何種操作系統下它的定義都是一樣的

而c語言字元串的結束符是數字0


可以通過一個簡單的程序來觀看

#include<stdio.h>

intmain(intargc,char**argv)
{
chars[]="hello";
inti;

for(i=0;i<sizeof(s);++i)
printf("s[%d]=%d ",i,s[i]);

return0;
}

輸出的結果為

s[0] = 104
s[1] = 101
s[2] = 108
s[3] = 108
s[4] = 111
s[5] = 0
可以看出結束符正是數字0

閱讀全文

與linux字元串相關的資料

熱點內容
廣聯達加密鎖怎麼看到期 瀏覽:172
cad軌跡命令 瀏覽:979
同事刷到女程序員自媒體視頻 瀏覽:571
校驗演算法的缺點是什麼 瀏覽:717
PHP商品分類功能實現 瀏覽:330
php取字元串中間 瀏覽:430
程序員經常用工具 瀏覽:835
降服主力指標源碼主圖 瀏覽:500
python實用庫 瀏覽:692
電腦默認7個文件夾 瀏覽:11
新唐單片機安裝c51後編譯錯誤 瀏覽:530
紅包源碼引流神器 瀏覽:235
學生初中畢業撕書解壓 瀏覽:747
命令方塊刷銅點教學 瀏覽:690
php郵件訂閱系統 瀏覽:997
柱樑底加密箍間距 瀏覽:30
pythonjavascript對比 瀏覽:741
什麼動漫app是大陸字幕 瀏覽:286
android查看activity棧 瀏覽:918
x86固件編譯 瀏覽:166