Ⅰ shell 腳本如何將一個文本文件中每一行第五列的絕對值大於該行第二列的行刪除。
awk ' { if( ($5>0?$5:-1*$5)<=$2 ){ print($0); } }' datfile
awk 是linux通用的腳本工具《linux awk》
awk自動對每一行:整行儲存進 $0 ,每個欄位 分別存進 $1 ... $n 。並對每一行執行代碼。
原理是 符合條件的行不print。等於就是刪除
if(){} 是《if條件語句》
($5>0?$5:-1*$5) 是《條件表達式》這個表達式實現了絕對值功能。
欲知詳情搜索書名號內關鍵字。
Ⅱ 怎麼通過你shell腳本刪除文件的某一行以及後面幾行
1、啟動Linux系統,用ssh工具(xshell或者SecureCRT等)連上Linux系統。
Ⅲ 使用shell腳本刪除文件中包含特定字元的行 ,字元在另一個txt文件提取
使用雙引號即可:
sed -i "/id=$var/d" 22.xml
Ⅳ shell 怎麼批量刪除文本文件的前幾行
forfilein`ls*.dat`
do
awk'{++lines;gsub(/[()]/,"");text[lines]=$0}
END{for(i=19;i<=lines-5;i++)
printtext[i];
}
'"$file">tmp$$
mvtmp$$"$file"
done
Ⅳ shell中怎麼刪除文件中指定行的
1、刪除包含指定關鍵字的行:
sed -i '/hello/d' test_temp
[root@host]$ cat test_temp
world
123
4566
889
2、刪除指定行號的行
sed -i '2d' test_temp
[root@host]$ cat test_temp
world
4566
889
3、sed -i '1d' a.txt刪首行
4、sed -i '$d' b.txt刪尾行
5、sed -i 's/[ ]*//g' c.txt刪空格
6、sed -i '/^$/d' d.txt刪空行
7、sed -i 『/love/d』 a.txt刪包含string的行。
(5)shell腳本刪除文本短的行擴展閱讀:
shell 命令
常用命令:
cat 文件名 輸出文件內容到基本輸出(屏幕 or 加>fileName 到另一個文件)
cb 格式化源代碼
chmod //change mode,改變文件的許可權
cp
date 當前的時間和日期
echo $abc 在變數賦值之後,只需在變數前面加一個$去引用.
lint語法檢查程序
ls dir
man help
more type
查看磁碟空間狀況
ps 查看當前進程狀況
who 你的用戶名和終端類型
定義變數 name=abc? (bash/pdksh) || set name = abc (tcsh)
mkdir 創建目錄
rmdir 刪除目錄
cd 進入目錄
rm 刪除文件
more 顯示文件
echo 顯示指定文本
mv 改文件名 /移動文件
pwd 顯示目錄路徑命令
Ⅵ 求shell腳本,刪除一個a.txt文檔中 完全包含 另外一個b.txt文檔的行。
catb.txt|xargs-I{}sed-i'/<{}>/d'a.txt
直接修改a.txt的話,那麼可以按以上命令.命令解釋一下:
顯示b.txt,並重定向給xargs,xargs將每行鎖定,然後每行執行刪除匹配該字的行.
{}鎖定的一行(一行一字), <匹配字的開始, >匹配字的結尾, d刪除匹配行, i直接修改文件
缺點是直接將a.txt修改了.
如果不需要修改的話,那麼就可以參考樓下的命令
grep-v-w"<`catb.txt`>"a.txt
命令解釋一下:
在a.txt中搜索不匹配cat 命令逐行(一字一行)顯示的行.
-v 表示不匹配的, -w 按字匹配, <匹配字的開始, >匹配字的結尾
Ⅶ shell 腳本 如何刪除文件的一行
使用sed。比如:
1. 刪除文件第三行。
sed-i'3d'file.txt
2. 刪除文件中包含"NewBalance"的那行。
sed-i'/NewBalance/d'file.txt