導航:首頁 > 編程系統 > linuxsed中使用變數值

linuxsed中使用變數值

發布時間:2024-01-09 18:22:59

㈠ 關於linux中sed和變數傳遞的問題,求高手解答!

將單引號改成雙引號就可以了,雙引號可以做變數替換,單引號不可以,比如:

㈡ linux sed命令替換特定字元之後的字元

1、首先進入到Linux系統,分別創建兩個目錄vim1、vim2。

㈢ Linux使用sed命令添加字元串方法教程

通常在Linux中添加字元串可以用命令實現,有很多種方式,有一種就是在文本的首尾行添加字元串。那麼具體怎麼使用呢?本文就來介紹一下Linux使用sed命令添加字元串的方法。

用sed命令在行首或行尾添加字元的命令有以下幾種:

假設處理的文本為test.file

在每行的頭添加字元,比如“HEAD”,命令如下:

sed ‘s/^/HEAD&/g’ test.file

在每行的行尾添加字元,比如“TAIL”,命令如下:

sed ‘s/$/&TAIL/g’ test.file

4.也可以把兩條命令和在一起,在test.file的每一行的行頭和行尾分別添加字元“HEAD”、“TAIL”,命令:sed ‘/。/{s/^/HEAD&/;s/$/&TAIL/}’ test.file

以上其實都還OK,昨天花太多時間,主要因為被處理的文件是用mysql從資料庫提取的結果導出來的,別人給我之後我就直接處理,太腦殘了= -我一直有點懷疑之所以結果不對,有可能是windows和linux換行的問題,可是因為對sed不熟,就一直在搞sed。

眾所周知(= -),window和linux的回車換行之雲雲,如果你知道了,跳過這一段,不知道,讀一下唄:

Unix系統里,每行結尾只有“《換行》”,即“ ”;Windows系統裡面,每行結尾是“《換行》《回 車》”,即“ ”。一個直接後果是,Unix系統下的文件在Windows里打開的話,所有文字會變成一行;而Windows里的文件在 Unix下打開的話,在每行的結尾可能會多出一個^M符號。

好了,所以我的問題就出在被處理的文件的每行末尾都有^M符號,而這通常是看不出來的。可以用“cat -A test.file”命令查看。因此當我想在行尾添加字元的時候,它總是添加在行首且會覆蓋掉原來行首的字元。

補充:系統常用維護技巧

1,在 “開始” 菜單中選擇 “控制面板” 選項,打開 “控制面板” 窗口,單擊 “管理工具” 鏈接

2,在打開的 “管理工具” 窗口中雙擊 “事件查看器” 圖標

3, 接著會打開 “事件查看器” 窗口

4,在右側窗格中的樹狀目錄中選擇需要查看的日誌類型,如 “事件查看器本地--Win日誌--系統日誌,在接著在中間的 “系統” 列表中即查看到關於系統的事件日誌

5,雙擊日誌名稱,可以打開 “事件屬性” 對話框,切換到 “常規” 選項卡,可以查看該日誌的常規描述信息

6,切換到 “詳細信息” 選項卡,可以查看該日誌的詳細信息

7,打開 “控制面板” 窗口,單擊 “操作中心” 鏈接,打開 “操作中心” 窗口,展開 “維護” 區域

8,單擊 “查看可靠性歷史記錄” 鏈接,打開 “可靠性監視程序” 主界面,如圖所示, 用戶可以選擇按天或者按周為時間單位來查看系統的穩定性曲線表,如果系統近日沒出過什麼狀況, 那麼按周來查看會比較合適。觀察圖中的曲線可以發現,在某段時間內,系統遇到些問題,可靠性指數曲線呈下降的趨勢,並且在這段時間系統遇到了三次問題和一次警告,在下方的列表中可以查看詳細的問題信息。

相關閱讀:系統故障導致死機怎麼解決

1、病毒原因造成電腦頻繁死機

由於此類原因造成該故障的現象比較常見,當計算機感染病毒後,主要表現在以下幾個方面:

①系統啟動時間延長;

②系統啟動時自動啟動一些不必要的程序;

③無故死機

屏幕上出現一些亂碼。

其表現形式層出不窮,由於篇幅原因就介紹到此,在此需要一並提出的是,倘若因為病毒損壞了一些系統文件,導致系統工作不穩定,我們可以在安全模式下用系統文件檢查器對系統文件予以修復。

2、由於某些元件熱穩定性不良造成此類故障(具體表現在CPU、電源、內存條、主板)

對此,我們可以讓電腦運行一段時間,待其死機後,再用手觸摸以上各部件,倘若溫度太高則說明該部件可能存在問題,我們可用替換法來診斷。值得注意的是在安裝CPU風扇時最好能塗一些散熱硅脂,但我在某些組裝的電腦上卻是很難見其蹤影,實踐證明,硅脂能降低溫度5—10度左右,特別是P Ⅲ 的電腦上,倘若不塗散熱硅脂,計算機根本就不能正常工作,曾遇到過一次此類現象。該機主要配置如下:磐英815EP主板、PⅢ733CPU、133外頻的128M內存條,當該機組裝完後,頻繁死機,連Windows系統都不能正常安裝,但是更換賽揚533的CPU後,故障排除,懷疑主板或CPU有問題,但更換同型號的主板、CPU後該故障也不能解決。後來由於發現其溫度太高,在CPU上塗了一些散熱硅脂,故障完全解決。實踐證明在賽揚533以上的CPU上必須要塗散熱硅脂,否則極有可能引起死機故障。

3、由於各部件接觸不良導致計算機頻繁死機

此類現象比較常見,特別是在購買一段時間的電腦上。由於各部件大多是靠金手指與主板接觸,經過一段時間後其金手指部位會出現氧化現象,在拔下各卡後會發現金手指部位已經泛黃,此時,我們可用橡皮擦來回擦拭其泛黃處來予以清潔。

4、由於硬體之間不兼容造成電腦頻繁死機

此類現象常見於顯卡與其它部件不兼容或內存條與主板不兼容,例如SIS的顯卡,當然其它設備也有可能發生不兼容現象,對此可以將其它不必要的設備如Modem、音效卡等設備拆下後予以判斷。

5、軟體沖突或損壞引起死機

此類故障,一般都會發生在同一點,對此可將該軟體卸掉來予以解決。

㈣ Linux sed 之G、H、g、h使用命令詳解

1.把文本第1行讀入到內存 模式空間(pattern space),相當於放到流程水線上處理吧
2.把處理好的結果存放到另一個內存空間(hold space)相當於臨時的倉庫吧
3.輸出處理結果,循環處理第2行,覆蓋清空(pattern space)、(hold space)至最後一行

由於各種各樣的原因,比如用戶希望在某個條件下腳本中的某個命令被執行,或者希望模式空間得到保留以便下一次的處理,都有可能使得sed在處理文件的時候不按照正常的流程來進行。這個時候,sed設置了一些高級命令來滿足用戶的要求。

sed命令:

不管是大寫還是小寫g、h都是在pattern space、hold space相互拷貝
區別是 小寫代表清空原來數據,大寫是保留原來數據在後面追加新數據
案例

圖解分析過程
P:Pattern Space
H:Hold Space
藍色:Hold Space中的數據
綠色:Pattern Space中的數據

案例

參考鏈接:
https://www.cnblogs.com/fhefh/archive/2011/11/22/2259097.html

㈤ linux之文本內容替換命令sed

sed簡介:流編輯工具,用來對文本進行過濾與替換操作。

sed流程:sed通過一次僅讀取一行內容來對某些指令進行處理後輸出。

1、sed通過文件或管道讀取文件內容,但sed默認並不直接修改源文件,而是將讀入的內容復制到緩沖區中,稱之為模式空間。
2、所有的指令操作都是在模式空間找那個進行
3、sed根據相應的指令對模式空間中的內容進行處理並輸出結果,默認輸出至標准輸出(即屏幕上)。

sed基本語法格式:
用法:sed[選項]...{腳本指令}[輸入文件]...
選項: -version 顯示sed版本
-help :顯示幫助文檔
-n,-quiet,-silent靜默輸出,默認情況下,sed程序在所有的腳本指令執行完畢後,將自動列印模式空間中的內容。
-e script允許多個腳本指令被執行
-f script-file從文件中讀取腳本指令,對編寫自動化腳本程序很實用
-i ,-in-place 該選項直接修改源文件
-l N 該選項指定l指令可以輸出的行長度,l指令為輸出非列印字元。
-posix 禁用GNU sed擴展功能。
-r 在腳本指令中使用擴展正則表達式。
-s,-separate 默認情況下,sed將把輸入的多個文件名作為一個長的連續的輸入流。而GNU sed則允許把它們當作單獨的文件。
-u,-unbuffered 最低限度的緩存輸入與輸出
a,append表示追加指令;
i,insert表示插入指令;
d,delete表示刪除指令;
s,substitution表示替換指令。
sed腳本指令的基本格式是:
[地址,即路徑]命令(有些命令僅可以對一行操作,有些可以對多行操作),命令也可以用花括弧進行組合,使命令序列可以作用於同一個地址。
address{
command1
command2
command3
}

sed的基本工作方式是:

sed的替換命令s:

1、全局替換 : s/old/new/g ,其中g為全局替換,用於替換所有出現的次數; /如果和正則匹配的內容沖突可以使用其他符號,如 : s@old@new@g
2、標志位

為什麼要有多行模式: 配置文件一般有單行出現,但也有使用json或XML格式的配置文件,為多行出現。
多行模式處理命令N、D、P

㈥ 如何用sed命令往空文件中寫入數據

sed是基於行來處理的文件流編輯器,如果文件為空的話,它是處理不了的!找了段英文的解釋如下:

Sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a
pipeline). While in some ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over
the input(s), and is consequently more efficient. But it is sed』s ability to filter text in a pipeline which particularly distin-
guishes it from other types of editors.

大致情形就是:

linux@host~# cat file.txt // 裡面沒有內容
linux@host~# touch file.txt // 新建一個空文件
linux@host~# cat file.txt // 裡面沒有內容
linux@host~# sed -i "\$a $var" file.txt // 往文件裡面添加變數中的數據
linux@host~# cat file.txt // 但文件裡面還是沒有內容
linux@host~#

㈦ 使用shell腳本替換與更新文件里的一段內容,可以使用sed, awk等Linux工具

我也給個思路吧 —— 用sed根據地址范圍截取文件內容,用Here documents方法添加新的多行內容,然後重組文件。具體步驟如下:

1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;

2)將要添加的內容根據變數值展開,附加寫入tmp文件;

3)截取test.xml文件</abcdef>行到結束行,附加寫入tmp文件。

4)移動tmp文件覆蓋test.xml文件。

代碼

#!/bin/sh
$hostnames="host1,host2,host3..."
$paragraph="many_strings"
sed-n'1,/^<abcdef>/p'test.xml>tmp
cat<<EOF>>tmp
forhnamein`echo"$hostnames"|tr','''`
do
insert$hname
insert$paragraph
done
EOF
sed-n'/^</abcdef>/,$p'test.xml>>tmp
mvtmptest.xml

注意:

1) for a in b 結構中,b集合里的內容必需要空格分隔。所以我這里做了轉換,用tr命令將逗號分隔改為了空格分隔。

2)第二個EOF必需頂格寫,前面不能有空格。

閱讀全文

與linuxsed中使用變數值相關的資料

熱點內容
兩個電腦數據怎麼一樣 瀏覽:829
順豐有什麼買東西的app 瀏覽:377
數位板word 瀏覽:939
win7寬頻連接出現多重網路 瀏覽:268
更改程序圖標c語言 瀏覽:629
網路電視偷停怎麼辦 瀏覽:418
linux連接ftp 瀏覽:512
es文件瀏覽器視頻筆記 瀏覽:874
mac無法打開描述文件 瀏覽:134
什麼軟體打文件 瀏覽:53
資料庫無數據變成0 瀏覽:899
名企筆試如何刷編程題 瀏覽:49
js跳到頁面某地 瀏覽:550
jsp展示clob欄位 瀏覽:779
nyx在網路上是什麼意思 瀏覽:145
樂播農業app是什麼 瀏覽:530
編程框架如何開發 瀏覽:136
金庸群俠傳3修改代碼 瀏覽:712
檢察院的文件類別有哪些 瀏覽:793
怎麼把九游殘留數據刪除 瀏覽:828

友情鏈接