⑴ 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
$