![](/img/trans.png)
[英]What GNU/Linux command-line tool would I use for performing a search and replace on a file?
[英]Command line tool to search docx file under ms dos or cygwin
是否有一個命令行工具能夠在ms dos或cygwin下搜索docx文件?
我已經嘗試過grep,但無法與docx一起使用,而與txt文件一起正常工作。
我知道我總是可以將docx轉換為txt,然后使用grep進行搜索,但是我想知道
有可以直接在命令行下搜索的命令工具嗎?
謝謝
我寫了一個小的bash腳本,它將幫助您:
#!/bin/bash
export DOCKEY="$@"
function searchdoc(){
VK1=$(cat "$@" | grep -i "$DOCKEY" | wc -c)
VK2=$(unzip -c "$@" | grep -i "$DOCKEY" | wc -c)
let NUM=$VK1+$VK2
if [ "$NUM" -gt 0 ]; then
echo $NUM occurences in $@
echo opening file.
gnome-open "$@"
fi
}
export -f searchdoc
echo searching for $DOCKEY ...
find . -exec bash -c 'searchdoc "{}" 2>/dev/null' \;
將其另存為docfind.sh即可調用
$#> docfind.sh searchterm
從您要掃描的任何文件夾。
在嘗試了這些東西之后,我發現最簡單的方法是使用linux實用程序將所有docx文件批量轉換為txt文件,然后對這些txt文件輕松進行grep。
將其另存為docfind.sh即可調用
像我這樣的新手可能需要被告知,要使.sh腳本可從任何目錄執行,它都需要設置可執行文件屬性,並位於/ usr / bin或Path的其他位置。
我能夠在Linux Mint中設置nemo文件管理器,以從任何文件夾的上下文菜單打開終端( 信息在此處 )。
zgrep可能適合您? 它通常可以在OpenOffice文檔中使用,並且都是包含XML的壓縮檔案:
zgrep "some string" *.xdoc
我沒有.xdoc文件可以對此進行測試,但從理論上講,它應該可以工作...
您可以使用zipgrep,它在zip歸檔文件的所有文件(docx文件是該文件)上調用grep。 但是,您可能會對結果感到失望,因為它返回包含文本和XML標記的XML文件的原始內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.