⑴ linux的shell編程中如何將一段字元串寫入到某個文件中並覆蓋文件的一部分內容
兩種思路,
第一種,你打開文件,找到匹配的行,改掉,重寫個文件,刪除原來的。改這個文件為一樣的名字。
第二種,以需要改寫的文本,把原來的文件分成兩個部分,要改寫的部分空出,然後重定向合並到一個文件里。
例如, file.txt 分為 a.txt b.txt 現在
1 a.txt>file.txt
2 變行 >>file .txt
3 b.txt >>file.txt
⑵ 我想知道SHELL命令下字元串拼接
=號兩邊不能有空格
執行命令需要用反引號括起來 `grep -c "" 3s.txt`
⑶ linux在shell下如何將字元串寫入文件
可以使用echo命令將文本流導向標准輸出,然後再使用>符號重新定向標准輸出到文件。
用法示例:
將字元串"hello world"寫入文件file.txt中
$ echo "hello world" > file.txt
然後再嘗試用cat命令從讀取文件並寫入到標准輸出,可以看到字元串已經成功寫入文件。
$ cat file.txt
⑷ shell拼接字元串
《linux就該這么學》不錯的linux自學書籍
⑸ shell以逗號換行,拼接指定符號前面字元
awk 'BEGIN{FS=","}{for(i=1;i<NF;i++){ if(i!=1){print "123""|"$i } else{print $i} } }' name.txt
awk處理文本
awk將符合PATTERN的文本逐行取出,並按照指定的分割符(默認為空白,
通過-F選項可以指定分割符)進行分割,然後將分割後的每段按照特定的格式輸出.網頁鏈接一起學習linux
⑹ linux中用shell時奇怪的字元串拼接和時間計算問題
testt=$(date +%Y-%m-%d)
date2="14/08/12"
test=20
testtt="${test}${date2}"
time1=$(date +%s -d "$testt" )
time2=$(date +%s -d "$testtt" )
time=$(($time1-$time2))
echo $time
改成引號,去掉括弧!!
⑺ Linux shell: 變數與字元串拼接出新變數到if語句
不能這樣寫 "${TN3RD_$(echo ${library} | tr '[a-z]' '[A-Z]')_SUPPORT}"
直接寫:
if [ "$library" == "zlib" ];then
echo "${library} is included"
fi
⑻ shell字元串拼接
字元串最好放到雙引號中,防止中間有空格,如name中就可能存在空格。
改為:
total="${name}""${email}""${other}"
或者 total="$name""$email""$other"
⑼ hell 如何在bash腳本中連接兩個字元串變數
bash在一個腳本里引用另一個腳本定義的變數有3種方法:
fork(/directory/script.sh)
fork是最普通的,就是直接在腳本裡面用/directory/script.sh來調用script.sh這個腳本.
運行的時候開一個sub-shell執行調用的腳本,sub-shell執行的時候,parent-shell還在。
sub-shell執行完畢後返回parent-shell.sub-shell從parent-shell繼承環境變數.但是sub-shell中的環境變數不會帶回parent-shell
exec(exec/directory/script.sh)
exec與fork不同,不需要新開一個sub-shell來執行被調用的腳本.被調用的腳本與父腳本在同一個shell內執行。但是使用exec調用一個新腳本以後,父腳本中exec行之後的內容就不會再執行了。這是exec和source的區別
source(source/directory/script.sh)
與fork的區別是不新開一個sub-shell來執行被調用的腳本,而是在同一個shell中執行.所以被調用的腳本中聲明的變數和環境變數,都可以在主腳本中得到和使用.
可以通過下面這兩個腳本來體會三種調用方式的不同:
1.sh
#!/bin/bash
A=B
echo"PIDfor1.shbeforeexec/source/fork:$$"
exportA
echo"1.sh:$Ais$A"
case$1in
exec)
echo"usingexec…"
exec./2.sh;;
source)
echo"usingsource…"
../2.sh;;
*)
echo"usingforkbydefault…"
./2.sh;;
esac
echo"PIDfor1.shafterexec/source/fork:$$"
echo"1.sh:$Ais$A"
2.sh
#!/bin/bash
echo"PIDfor2.sh:$$"
echo"2.shget$A=$Afrom1.sh"
A=C
exportA
echo"2.sh:$Ais$A"
執行情況:
$./1.sh
PIDfor1.shbeforeexec/source/fork:5845364
1.sh:$AisB
usingforkbydefault…
PIDfor2.sh:5242940
2.shget$A=Bfrom1.sh
2.sh:$AisC
PIDfor1.shafterexec/source/fork:5845364
1.sh:$AisB
$./1.shexec
PIDfor1.shbeforeexec/source/fork:5562668
1.sh:$AisB
usingexec…
PIDfor2.sh:5562668
2.shget$A=Bfrom1.sh
2.sh:$AisC
$./1.shsource
PIDfor1.shbeforeexec/source/fork:5156894
1.sh:$AisB
usingsource…
PIDfor2.sh:5156894
2.shget$A=Bfrom1.sh
2.sh:$AisC
PIDfor1.shafterexec/source/fork:5156894
1.sh:$AisC
$