腳本sed
㈠ shell腳本sed命令如何使用變數替換掉包含指定字元串的整行
#先將包含指定字元串的整行列印到變數tmp
tmp=$(sed -n '/${zip}/p' 文本名)
#然後將文本中這一整行字元串替換為你想要修改的字元串
sed -i 's/${tmp}/${zip}/g' 文本名
㈡ sed問題。shell腳本下的sed有點奇怪,求解答
#!/bin/bash
STRING="strncpy(orderInfo.szParam,param.getString("szParam").c_str(),sizeof(orderInfo.szParam)-1);szMemo"
cat1.txt|whilereadline
do
param=`echo$line|awk'{print$1}'`
memo=`echo$line|awk'{print$2}'`
echo$STRING|sed"s/szParam/$param/;s/szMemo/$memo/"
echo$dst
done
1.txt 內容:
001002003004
aabbccdd
輸出:
strncpy(orderInfo.001,param.getString("szParam").c_str(),sizeof(orderInfo.szParam)-1);002
strncpy(orderInfo.aa,param.getString("szParam").c_str(),sizeof(orderInfo.szParam)-1);bb
這個語句有問題:
echo$STRING|sed"s/szParam/$param/;sed/szMemo/$memo/"
我改成:
echo$STRING|sed"s/szParam/$param/;s/szMemo/$memo/"
或者
echo$STRING|sed"s/szParam/$param/"|sed"s/szMemo/$memo/"
㈢ SED是什麼
SED
sed 是一個非互動式上下文(context)編輯器,它被設計在下列三種情況下發揮作用:
1) 編輯那些對舒適的互動式編輯而言太大的文件。
2) 在編輯命令太復雜而難於在交互模式下鍵入的時候編輯任何大小的文件。
3) 要在對輸入的一趟掃描中有效的進行多個『全局』(global)編輯函數。
因為每次只把輸入的某些行駐留在內存中,並且不使用臨時文件,所以可編輯的文件的有效大小,只受限於輸入和輸出要同時共存於次級存儲的要求。
可以單獨的建立復雜的編輯腳本並作為給 sed 的命令文件。對於復雜的編輯,這節省了可觀的鍵入和隨之而來的錯誤。從命令文件運行 sed 高效於作者所知道的任何互動式編輯器,甚至包括能用預先寫好的腳本驅動的編輯器。
相較於互動式編輯器而言,根本性的損失是缺乏相對地址(由於操作是每次一行的),和缺乏對命令如期運行的立即驗證。
sed 是 UNIX 編輯器 ed 的直系後代。由於在互動式和非互動式操作之間的差異,在 ed 和 sed 之間已經有了可觀的變化;甚至 ed 的慣常用戶都會經常感到驚訝(並可能氣憤),如果他們沒有閱讀本文檔的章節 2 和 3,就草率的使用 sed 的話。在兩個編輯器之間最顯著的家族性共同之處,在於他們所識別的模式(『正則表達式』)的種類;匹配模式的代碼可以從 ed 的代碼幾乎原封不動的復制過來,在章節 2 中對正則表達式的描述就是從 UNIX Programmer』s Manual[1] 幾乎原封不動的復制過來的。(代碼和描述都是 Dennis M. Ritchie 寫的)。
㈣ sed腳本問題:緊急,應該很簡單的。 要求:每一行的字元串 xxxxxx變成 xxxxxx: xxxxxx
就是這樣做的,可以用 -r 參數,這樣括弧不用 \ 轉義了:
sed -r 's/(^.*$)/\1:\1/' filename
㈤ sed腳本問題~!
其實腳本文件可以用任何文本編輯器,只不過對於新手,這樣的工具會比較難,給你
個英文學習資料吧,專門介紹這個的。
http://www.grymoire.com/Unix/Sed.html#uh-0
例子:Sed has several commands, but most people only learn the substitute command: s. The substitute command changes all occurrences of the regular expression into a new value. A simple example is changing "day" in the "old" file to "night" in the "new" file:
sed s/day/night/ <old >new
Or another way (for Unix beginners),
sed s/day/night/ old >new
and for those who want to test this:
echo day | sed s/day/night/
㈥ 關於shell腳本中的一個sed表達式問題,用於處理替換一個文件中的某些值和內容,看不懂,求指教
1、sed -i '/WirelessType/c'"WirelessType=cellular" $conf_file
答:表示把文件conf_file中含有WirelessType的行替換為WirelessType=cellular
2、sed -i '/SSID/c'"SSID=$value" $conf_file
答:表示把文件SSID中含有WirelessType的行替換為SSID=$value,其中value為變數值
3、conf_file必須在當前目錄下么?
答:可以在任何目錄。
4、$?表示最近一條語句的執行結果,0表示成功,其他表示失敗。因此,下面的內容表示上條語句執行失敗時,輸出function get_value error: ssid。
if [ $? != 0 ]; then
echo "function get_value error: ssid"
exit 2
fi
希望可以幫助到你!
㈦ 腳本中sed 無法執行,顯示未知命令,是不是和$f有關
for f in `ls *.csv`
do
sed -n '此處要有sed命令' $f | sort -k1 > $f.11
done
㈧ shell腳本中的sed s/ /\ /g'這個命令是啥意思
sed的替換命令格式:s/A/B/g 或者 s#A#B#g 或者 s_A_B_g#只是分隔符而已,為滿足格式需要。將所有製表符\t替換為|g表示全局替換,有多少次替換多少次。
㈨ 運行一個自己寫的sed腳本,為什麼出現了亂碼,即使代碼有錯也不應這樣啊,查看一下編碼情況,要改嗎
sh -x ./append1.sed input
看看過程是哪有問題
file ./append1.sed 看看和其他正常文件的區別
vim狀態在./append1.sed 裡面執行:set fileformat=unix
㈩ Linux腳本用sed怎麼刪除第二個空格之前的內容
正則表達式是這樣:
s/.+?s.+?s//
s是空白字元,你可以替換成空格(我沒寫空格是因為在網路頁面上看不清)