作爲腳本的一部分,我正在寫作,我需要將文件(單詞列表)作爲輸入,並從其他輸入文件中刪除所有這些單詞的實例。我會如何做這樣的事情?也許使用grep?以一個文件作爲輸入,從其他文件中刪除它的內容
1
A
回答
3
如何
$ grep -v -f words_to_exclude.txt input.txt
其中
-f
指定要grep來匹配
-v
字的文件指定要grep來輸出什麼不比賽
以上要求兩個文件每行需要一個單詞。
1
人的grep這樣說:
-f FILE,--file = FILE 從文件中獲取模式,每行一個。空文件包含零模式,因此不匹配任何內容。 (-f由POSIX指定。)
和此:
-v,--invert匹配 反轉匹配的意義上,以選擇不匹配的行。 (-v由POSIX指定)。
所以,是的,使用grep會是一個好方法。至少如果你想從輸入文件中刪除所有包含特殊詞的行。如果你只想刪除單詞,事情會變得更加複雜。
0
sed可能是你要找的東西。示例腳本:
#! /usr/bin/bash
for word in $(cat $1);
do
sed s/$word//g $2 > tmp;
mv tmp $2;
done;
假設你保存到script.sh這一點,你會說它是這樣的:
./script.sh wordsToExclude.txt textToProcess.txt
$1
是 「論點1號」 在bash在此情況下wordsToExclude.txt
,同樣,$2
是textToProcess.txt
這是幹什麼的,它將$ word的每個實例都替換爲空,tmpfile只是作爲sed寫入的緩衝區,以便它不會破壞源,而wo rking。
sed命令中的g
是「全局替換標誌」。 sed的默認行爲是僅替換一行中第一次出現的搜索模式。 g
標誌告訴sed替換所有的事件,而不僅僅是第一個。
相關問題
- 1. Realm從apk中刪除其他文件
- 2. 刪除指定文件夾及其內容以外的文件夾內容
- 3. grunt-contrib-clean刪除除一個文件夾及其內容以外的所有文件夾/文件
- 4. 從文本部件中刪除內容
- 5. 從c中的文本文件中刪除一些內容#
- 6. Java - 刪除文件夾及其內容
- 7. 文件輸出刪除所有內容
- 8. 如何從輸入類型=「文件」中刪除一個,兩個文件多個?
- 9. BAT文件能夠刪除一些文件,但不能刪除其他文件
- 10. 從輸入字段中刪除文件
- 11. 刪除一個文件夾及其內容AWS S3 java
- 12. 刪除文件內容不起作用
- 13. 如何刪除文件的內容而不刪除它自己?
- 14. 從一個子文件夾中刪除文件夾內容與Ruby
- 15. 從其他html文件逐一加載div中的內容
- 16. 如何從輸入文件中刪除選定的文件?
- 17. Unix的:一個腳本文件作爲輸入,輸出到其他腳本
- 18. 通過更改內容從文件夾中刪除文件
- 19. UIWebView - 從文件中讀取內容並刪除文件
- 20. 從PHP文件輸入HTML文件中的DIV內容
- 21. 用於文件刪除文件夾及其內容
- 22. 如何從輸入類型=文件中刪除一個對象?
- 23. 當從一個文件輸入一個結構,然後保存更改時,爲什麼它總是寫入第一行並擦除其他所有內容?
- 24. 將文本文件的內容作爲python腳本的輸入
- 25. Shell - 刪除除單個文件夾以外的所有內容
- 26. Node.js /刪除文件中的內容
- 27. 在Tcl中刪除文件的內容
- 28. 刪除文件中的所有內容
- 29. 爲什麼它會刪除文件的內容?
- 30. 如何從其他文件的網頁標題插入內容?
更好考慮grep與'-F'和'-w' – Kent 2013-03-18 16:58:06
這將刪除整個行包含匹配的單詞,而不僅僅是單詞本身。 – chepner 2013-03-18 17:25:15