求shell指令碼,刪除a 中完全包含另外b 的行

2021-08-10 23:09:27 字數 3356 閱讀 7977

1樓:匿名使用者

cat b.txt| xargs -i {} sed -i '/\<{}\>/d' a.txt

直接修改a.txt的話,那麼可以按以上命令.命令解釋一下:

顯示b.txt,並重定向給xargs,xargs將每行鎖定,然後每行執行刪除匹配該字的行.

{}鎖定的一行(一行一字), \《匹配字的開始, \>匹配字的結尾, d刪除匹配行, i直接修改檔案

缺點是直接將a.txt修改了.

如果不需要修改的話,那麼就可以參考樓下的命令

grep -v -w "\<`cat b.txt`\>" a.txt

命令解釋一下:

在a.txt中搜尋不匹配cat 命令逐行(一字一行)顯示的行.

-v 表示不匹配的, -w 按字匹配, \《匹配字的開始, \>匹配字的結尾

2樓:

用這條命令應該能達到你的目的,你試試

grep -v -w "\<`cat b.txt`\>" a.txt

另外,你的b.txt裡meiy哈爾濱,所以a.txt中的'哈爾濱    3'應該不會被刪除。

3樓:匿名使用者

#! /bin/sh

while read line

dogrep -v $ a.txt > a.txtdone < b.txt

使用shell指令碼刪除檔案中包含特定字元的行 ,字元在另一個txt檔案提取

4樓:

使用雙引號即可:

sed -i "/id=$var/d" 22.xml

shell中怎麼刪除檔案中指定行的

5樓:很多很多

1、刪除包含指定關鍵字的行:

sed -i '/hello/d' test_temp[root@host]$ cat test_tempworld

2、刪除指定行號的行

sed -i '2d' test_temp[root@host]$ cat test_tempworld

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的行。

擴充套件資料:shell 命令

常用命令:

cat 檔名 輸出檔案內容到基本輸出(螢幕 or 加》filename 到另一個檔案)

cb 格式化源**

chmod //change mode,改變檔案的許可權cp copy

date 當前的時間和日期

echo $abc 在變數賦值之後,只需在變數前面加一個$去引用.

lint 語法檢查程式

ls dir

man help

more type

du 檢視磁碟空間狀況

ps 檢視當前程序狀況

who 你的使用者名稱和終端型別

定義變數 name=abc? (bash/pdksh) || set name = abc (tcsh)

mkdir 建立目錄

rmdir 刪除目錄

cd 進入目錄

rm 刪除檔案

more 顯示檔案

echo 顯示指定文字

mv 改檔名 /移動檔案

pwd 顯示目錄路徑命令

6樓:釗鉼

1、sed -i '1d' a.txt刪首行

2、sed -i '$d' b.txt刪尾行

3、sed -i 's/[ ]*//g' c.txt刪空格

4、sed -i '/^$/d' d.txt刪空行

5、sed -i 『/^[0-9]*$/d' a.txt刪包含數字的行

6、sed -i 『1,2d』a.txt刪2行

7、sed -i 『/love/d』 a.txt刪包含string的行

在電腦科學中,shell俗稱殼(用來區別於核),是指「為使用者提供操作介面」的軟體(命令解析器)。它類似於dos下的command.com和後來的cmd.

exe。它接收使用者命令,然後呼叫相應的應用程式。

擴充套件資料:

基本上shell分兩大類:

一:圖形介面shell(graphical user inte***ce shell 即 gui shell)

例如:應用最為廣泛的 windows explorer (微軟的windows系列作業系統),還有也包括廣為人知的 linux shell,其中linux shell 包括 x window manager (blackbox和fluxbox),以及功能更強大的cde、gnome、kde、 xfce。

二:命令列式shell(command line inte***ce shell ,即cli shell)

例如:bash / sh / ksh / csh(unix/linux 系統)

(ms-dos系統)

cmd.exe/ 命令提示字元(windows nt 系統)

windows powershell(支援 .net framework 技術的 windows nt 系統)

傳統意義上的shell指的是命令列式的shell,以後如果不特別註明,shell是指命令列式的shell。

我有一個shell指令碼,想把輸出結果寫到另一個檔案中,請問指令碼應該怎麼新增命令?

7樓:我是幸福的懶豬

舉個例子:

echo "hello,world" >> b.txt 這是第一個命令的輸出

ifconfig >> b.txt 這是第二個命令的輸出>> 表示在檔案末尾追加

8樓:匿名使用者

輸出用『echo』啊!不懂你意思,1是標準輸出是預設的,寫不寫都一樣。

echo "hello,world" > b.txt

9樓:情又獨中

exec 1 是什麼意思,哪有這個命令?

10樓:天地缺雪

是不是你》號前後的空格沒打啊?依稀記得要空格的(以前弄過,有點忘記了)。

寫一個shell指令碼,從[a]和[b]中間的內容全部拷貝出來

11樓:匿名使用者

cat filename | sed -n '/\[a\]/,/\[b\]/p' | awk 'nr>2' >> config.txt

shell指令碼中如何跨指令碼呼叫其他指令碼中的函式

這個前提是在你指令碼執行過程中,其他指令碼也需要執行並呼叫,然後可以把函式放到環境變數中,再從指令碼中讀取環境變數 shell指令碼怎麼呼叫其他shell指令碼 在shell中要如何呼叫別的shell指令碼,或別的指令碼中的變數,函式呢?方法一 subscript.sh方法二 source subs...

LINUX程式設計中shell指令碼的問題

if gt 2 與 之間要有一個空格,與2之間也要有個空格,不能挨著。linux shell程式設計 shell 指令碼引數問題!10 關於引數傳遞 假我要獲取 home某目錄檔案某目錄我原先知道所需要先使用 ls l home 獲取 home目錄資訊。現需要ls l homels l filena...

linux 2 6的shell指令碼中如何kill掉 sleep程序

你是說找到系統中所有名字為sleep的程序id,並且殺死它們,是嗎?我沒有linux平臺測試,我使用的hp ux,下面的 你可能需要適當調整才可以使用。下面的命令可以找出系統中的所有程序 ps e 要查詢所有名稱為sleep的經常,有的系統可以給ps使用 n引數,例如 ps n sleep 但是通用...