當前位置:首頁 » 編程軟體 » 怎麼修改shell腳本中的內容

怎麼修改shell腳本中的內容

發布時間: 2024-12-03 08:40:55

❶ 求助shell腳本修改xml的值

假設你的內容在1.xml中,執行這個命令就行了(先備份一份原文件,-i參數會直接將結果覆蓋到原文件上):
sed -i 's/\(\svalue=\"\)[^\"]*\"/\1ccc\"/;s/\(\sdefaultValue=\"\)[^\"]*\"/\1ccc\"/;' 1.xml

❷ 如何在shell腳本中修改添加替換指定文件中的內容

1、可以藉助於shell命令執行另一個腳本文件或者用變數保存。比如a.sh和b.sh,a.sh中調用b.sh的代碼,一起輸出"hello world"的字元串。b.sh的代碼如下echo " world!"。

❸ 使用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必需頂格寫,前面不能有空格。

❹ shell 腳本編寫修改文件

修改腳本中的對應變數可以實現替換內容的修改,具體實現如下:




#!/usr/bin/env bash

PASS_MAX_DAYS=90
PASS_MIN_DAYS=2
PASS_MIN_LEN=8
PASS_WARN_AGE=7

login_path="/etc/login.defs"
pwquality_path="/etc/security/pwquality.conf"

if [ -f $login_path ]; then
sed -i -E "s/(^PASS_MAX_DAYS.)[0-9]+/1$PASS_MAX_DAYS/g" $login_path
sed -i -E "s/(^PASS_MIN_DAYS.)[0-9]+/1$PASS_MIN_DAYS/g" $login_path
sed -i -E "s/(^PASS_MIN_LEN.)[0-9]+/1$PASS_MIN_LEN/g" $login_path
sed -i -E "s/(^PASS_WARN_AGE.)[0-9]+/1$PASS_WARN_AGE/g" $login_path
echo "完成$login_path文件的替換"
else
echo "$login_path 文件不存在,請檢查配置"
fi

if [ -f $pwquality_path ]; then
echo password requisite pam_cracklib.so minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 >>$pwquality_path
echo account required /lib/securtiy/pam tally.so deny=5 no_magic_root reset >>$pwquality_path
echo "對$pwquality_path完成追加"
else
echo "$pwquality_path 文件不存在,請檢查配置"
fi

❺ Linux下的shell編程 如何替換文件中的內容

可以這樣做:

方法1:sed -i 's/被替換的內容/要替換成的內容/' file

方法2:sed 's/被替換的內容/要替換成的內容/g' file > file.out;mv file.out file。

(5)怎麼修改shell腳本中的內容擴展閱讀:

Shell編程的常用技巧:

一、自動補齊:在linux中對於命令或路徑,可以TAB鍵進行自動補全,以下事項需要注意:

1、只存在一個該輸入字元開頭的命令或路徑,此時自動補全;

2、存在多個該輸入字元開頭的命令或路徑,此時第一次點擊TAB鍵無效,此時再次點擊TAB會羅列出所有該字元開頭的命令或路徑,繼續輸入直到僅僅剩一個時自動補全;

3、如果命令已經是完整的,TAB鍵則是本來的移動功能;而路徑的話要看命令自身的行為決定後續動作。

二、歷史命令

1、history命令可以顯示歷史執行過的命令;

2、使用!+序號執行該序號對應的命令;

3、使用!+字元執行該字元開頭的最後一次執行的指令。

三、命令別名

1、實現別名:alias ddd="df -Th";

2、刪除別名:unalias ddd;

3、顯示所有別名命令列表:alias;

4、存放位置:~/.bashrc (加入該文件後,重啟後不會消失)。

四、重定向

1、重定向標准輸入:< 命令接收輸入的途徑由鍵盤改為文件;

2、重定向標准輸出:> 將命令的執行結果輸出到指定文件,而不是直接顯示到屏幕;

3、重定向標准輸出:>> 將命令的執行結果追加輸出到指定文件;

4、重定向標准錯誤:2> 清除指定文件的內容,並把標准錯誤信息保存到指定文件;

5、重定向標准錯誤:2>> 標准錯誤信息追加到指定文件;

6、重定向標准輸出和標准錯誤:&> 將標准輸出、標准錯誤信息全部保存到指定文件,而不是直接顯示在屏幕上。

❻ shell腳本替換A、B兩個文件裡面的內容

先讀取A文件中那行內容,然後通過awk獲取B文件中的第五行內容,替換後重新覆蓋寫入A文件。
代碼如下:
#!/bin/sh
A=/usr/123.txt
B=/tem/456.conf
read line <$A
awk -v a=$line 'NR==5{print $1"\t"a}' $B >$A

❼ 怎麼通過你shell腳本刪除文件的某一行以及後面幾行

1、啟動Linux系統,用ssh工具(xshell或者SecureCRT等)連上Linux系統。

熱點內容
匯編語言編譯器屬於什麼軟體 發布:2024-12-04 04:29:45 瀏覽:948
aspx上傳漏洞 發布:2024-12-04 04:12:19 瀏覽:939
編譯後的資料庫文件 發布:2024-12-04 04:12:12 瀏覽:324
c調用python的函數 發布:2024-12-04 04:04:52 瀏覽:795
aspnet後台管理系統源碼 發布:2024-12-04 04:04:43 瀏覽:248
安卓怎麼取消折疊置頂聊天怎麼設置 發布:2024-12-04 03:59:04 瀏覽:581
atm機上密碼輸錯提示什麼 發布:2024-12-04 03:55:56 瀏覽:937
oppo怎麼給相冊加密碼 發布:2024-12-04 03:50:12 瀏覽:78
怎麼修改iphone密碼 發布:2024-12-04 03:45:55 瀏覽:860
如何關掉內部密碼 發布:2024-12-04 03:35:17 瀏覽:157