linuxshellsed
『壹』 誰能幫忙解釋下linux shell程序中的sed "s/$//;s/ *//g;/^$/d" 這句是什麼意思
意思是刪除空行,空行包括沒有任何字元的空行,和只有若干個空格的空行。
1、s/$// 在每一行後面追加空。
2、s為搜索。
如:s/a/b/
搜索a將替換為b ,並只替換一次。
3、s/ *//g 將空格刪除。
4、g代表搜索到的全部替換 。
5、「空格星」(" *") 代理多個空格。
6、/^$/d 刪除空行。
(1)linuxshellsed擴展閱讀:
作用
catfile.pl
useGetopt::Std;
usevarsqw($opt_d$opt_f$opt_p);
getopts('d:f:p');
print"$opt_d=>$opt_d "if$opt_d;
print"$opt_f=>$opt_f "if$opt_f;
print"$opt_p=>$opt_p
"if$opt_p;
然後在命令行中運行:
perlfile.pl-d20040412-flouiskoochen-p
可得到下列形式的輸出:
$opt_d=>200040412
$opt_f=>louiskoochen
$opt_p=>1
解釋一下"d:f:p",d和f後有冒號,表示-d,-f後面要跟參數。p後面沒有冒號,表示-p後面不帶參數。而且-d,-f後所跟的參數分別賦給變數$opt_d和$opt_f。對於變數$opt_p,若命令行加了-p,則$opt_p=1,否則為0。
『貳』 linux 下用shell sed替換文本中的字元串
sed是行編輯器,用這個工具非常困難。可以參考以下腳本:
#!/bin/bash
while
read
line
do
if
echo
$line
|
grep
'Hour$'
>/dev/null;
then
echo
$line
|
tr
-d
'\n'
else
echo
$line
fi
done
<
$1
1,將上面腳本保存為fuck.sh
2,chmod
755
fuck.sh
3,./fuck.sh
file
『叄』 如何使用Linux sed 命令將Shell的參數傳進去寫在文件里
re.sh:
#只需要在腳本中寫這一行就可以了-i可以修改原文件
sed-i's/defineVER0/defineVER$1/'cc.c
『肆』 Linux Shell中,sed重定向到文件自身的原理。
Shell的原因,用>重定向 到輸入文件,會先把文件清空,
和sed無關,awk、cat等都可以試試,也是空文件比如:
catdata.txt>data.txt#也是得到空文件
> 文件名
文件名不存在,先新建;文件名存在,先清空——這一部分先執行。
『伍』 linux shell sed命令用法
我注意到你結尾忘寫斜杠了。
echo$A|sed"s/he/$Var/"
『陸』 linux 下用shell sed替換文本中的字元串
sed是行編輯器,用這個工具非常困難。可以參考以下腳本:
#!/bin/bash
while read line
do
if echo $line | grep 'Hour$' >/dev/null; then
echo $line | tr -d '\n'
else
echo $line
fi
done < $1
1,將上面腳本保存為fuck.sh
2,chmod 755 fuck.sh
3,./fuck.sh file
『柒』 linux shell sed命令與轉義字元
不需要轉義,可以更改定界符。
例如:
A=「2013/06/09「
sed「s#hello#$A#"
將定界符改為#就可以了。
望採納,謝謝支持!
『捌』 linux shell中 sed 文件的1到7行行首有指定字元串的整行替換為為指定內容.
sed '1,7s/^字元串.*/替換內容/' file
不要隨便加 -i 參數。先確定好在加。
『玖』 linux shell 中sed 替換命令不能立即保存問題
關於日期變數,你先定義一個 a=`date +%Y%m%d`,然後下面的代碼中出現的日期都可以直接用$a替代。
你追問的那句話可以直接如下修改:
#!/bin/bash
a=`date+%Y%m%d`
expaa/bbfile=/home/oracle/$a/aa$a.dmp
反正a這個變數可以直接寫到日期語句當中,而不需要使用+號之類的。
『拾』 linux shell sed 文件中的某幾行到另一個文件的最後一行
將文件中的某幾行取出來,放到另一個文件的最後?
這個意思嗎?
sed -n '2,5p' file1 >>file2
將file1的2~5行取出來附加到file2後面