लिनक्स में कई एक्सेल (xls) फाइलों में टेक्स्ट सर्च करें


1

मैं उबंटू लिनक्स का उपयोग कर रहा हूं और मुझे कई एक्सेल में टेक्स्ट खोजने का तरीका नहीं मिल रहा है ( xls ) फाइलें। मेरी इच्छा इसे कमांड लाइन द्वारा करने की है, लेकिन अन्य विकल्पों का भी स्वागत है।

जवाबों:


1

मैंने ssconvert टूल (Gnumeric से) का उपयोग करके एक बनाया। आपको पहले Gnumeric स्थापित करने की आवश्यकता है:

sudo apt-get install gnumeric

आप सामग्री को स्क्रिप्ट और कॉल के रूप में सहेज सकते हैं:

./script-find-in-xls.sh text

स्क्रिप्ट की सामग्री।

#!/bin/sh

# $1 - text to find

if [ -z "$1" ]
  then
    echo 'Please, the text is mandatory'
    exit 1
fi

rm -rf /tmp/xls-csv/
mkdir /tmp/xls-csv/

cd /tmp/xls-csv/
cp /location/of/excel-files/*.xls /tmp/xls-csv/

for f in *.xls; do
    ssconvert -S --import-encoding=ISO8859-1 ./"$f" ./"${f%.xls}.csv"
done

cat *.csv.* > all-xls-content.txt
rm *.csv.*

if cat all-xls-content.txt | egrep --color $1; then
    echo 'found'
else
    echo 'not found'
fi

स्क्रिप्ट csv फ़ाइलों में सभी xls फ़ाइलों को परिवर्तित करती है, csv फ़ाइलों को एक ही फाइल में शामिल करती है और उपयोग करती है egrep पाठ खोजने के लिए।

कोड यह सही नहीं है, लेकिन काम करते हैं।


1

यदि आप एक अनुक्रमण अनुप्रयोग स्थापित करने के साथ ठीक हैं, तो यह एक उत्तर हो सकता है।

मैं व्यक्तिगत रूप से उपयोग करता हूं recoll , जो सेटअप और स्थापित करना आसान है। इसका डिफ़ॉल्ट इंटरफ़ेस एक GUI है, लेकिन CLI में इसका उपयोग करना संभव है

recoll -q <search terms>

आप इसके अनुक्रमणिका को अपडेट करने के लिए एक निर्धारित कार्य को सेटअप कर सकते हैं, या इसे मैन्युअल रूप से लॉन्च कर सकते हैं recollindex (दोनों स्थितियों में आप अपनी पसंद के मार्ग में सूचकांक को प्रतिबंधित कर सकते हैं)।


0

मेरी भी यही समस्या थी। यह स्क्रिप्ट चलाएँ:

python search.py /home/user/directory string

यहाँ आप मेरा समाधान खोजें:

#!/usr/bin/python

import os, sys
import xlrd

def find(path, word):

    l = []

    d = os.listdir(path)

    for file in d:

        filename = str(path) +'/' + str(file)

        print ('Finding in %s' %file)

        if filename.endswith('.xlsx'):

            wb = xlrd.open_workbook(filename)
            ws = wb.sheet_by_index(0)

            for i, row in enumerate(range(ws.nrows)):
                for j, col in enumerate(range(ws.ncols)):
                    if str(word) in str(ws.cell_value(i, j)):
                        l.append((file,row,col))
    if l:
        print ('Word %s found %d times in:' %(word,len(l)))

        for fn, row, col in l:
            print ('File: %s, row: %s ,column: %s' %(fn,row,col))        
    else:
        print ('Word %s not found' %word) 


if __name__ == "__main__":
    try:
        find (sys.argv[1],sys.argv[2])
    except IndexError:
        print('\tExecute: python searchpy <path> <word>')
        print('\tEg: python searchpy /home/user/files/ Fox')

आप गितुब से खींच सकते हैं: searb-इन-xlsx

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.