簡體   English   中英

如何通過Shell腳本從另一個文件中具有特定列文本的文件中刪除行?

[英]How to delete the rows from one file having the particular column text in other file through shell scripting?

情況:我們在服務器上的不同路徑中有兩個文件。 一個文件,即FILE A位於拒絕文件夾中,另一個FILE B位於存檔文件夾中。 我們正在從拒絕文件夾中讀取文件A,並在文本“ ITEM:”之后選擇單詞,然后在文件B中搜索它。如果找到了,那么我必須從文件B中刪除具有該單詞的整個行。

輸入:

檔案A:

hi my name is himansh agarwal.
My employee id is x56723
I live in Banaglore
I have an ITEM: WORDPRESS

文件B:

Hi My name is joseph.
i live in miami.
I dont go to office
I dont have an WORDPRESS.
i am very hungry.
I love to go out.

輸出:

文件B應該重命名為文件B_1,並且其中的文本不應包含具有WORDPRESS文本的行。 文件B:

Hi My name is joseph.
i live in miami.
I dont go to office
i am very hungry.
I love to go out.

您可以使用awk選擇文本:

awk '$0 ~ /ITEM: / { sub(/^.*ITEM: /,"",$0); print $0; }' file_a

您可以使用grep -v從文件中排除一行

grep -v WORDPRESS file_b

您可以使用命令替換將一個命令的結果作為參數提供給第二個命令:

grep -v "$(echo WORDPRESS)" file_b

您可以將命令的結果輸出到文件:

echo Test > file_b2

這給出:

grep -v "$(awk '$0 ~ /ITEM: / { sub(/^.*ITEM: /,"",$0); print $0; }' file_a)" file_b > file_b_1

(這假設輸出是文件B_1,而不是文件B。可以使用一些mv命令來實現文件B)

(您可以使用文件名中的空格來做到這一點,然后到處都是文件名)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM