如何在Linux中使用Shell脚本从Excel工作表中读取数据?
各位,, 我是Linux新手&对编写shell脚本非常感兴趣。这次我在做一张excel表格。在那张excel表格里会有序号。在第一列中,域名在第二列中。我的excel工作表中有100个域。所以,我不想手动复制每个域并将它们粘贴到浏览器中以检查所有域。我只想编写一个shell脚本,它可以通过运行单个shell脚本将所有域打开到浏览器中。 请帮帮我。我将非常感谢你 谢谢和问候- Reetesh Chauhan您可以使用以下样本: 您可以使用如何在Linux中使用Shell脚本从Excel工作表中读取数据?,linux,excel,bash,shell,unix,Linux,Excel,Bash,Shell,Unix,各位,, 我是Linux新手&对编写shell脚本非常感兴趣。这次我在做一张excel表格。在那张excel表格里会有序号。在第一列中,域名在第二列中。我的excel工作表中有100个域。所以,我不想手动复制每个域并将它们粘贴到浏览器中以检查所有域。我只想编写一个shell脚本,它可以通过运行单个shell脚本将所有域打开到浏览器中。 请帮帮我。我将非常感谢你 谢谢和问候- Reetesh Chauhan您可以使用以下样本: 您可以使用perl: #!/usr/bin/perl use Spr
perl
:
#!/usr/bin/perl
use Spreadsheet::WriteExcel;
my $workbook = Spreadsheet::WriteExcel->new("test.xls");
my $worksheet = $workbook->add_worksheet();
open(FH,"<file") or die "Cannot open file: $!\n";
my ($x,$y) = (0,0);
while (<FH>){
chomp;
@list = split /\s+/,$_;
foreach my $c (@list){
$worksheet->write($x, $y++, $c);
}
$x++;$y=0;
}
close(FH);
$workbook->close();
xls2csv
将把您的xls文件转换为CSV格式
通过管道将其连接到sed
以删除双引号
使用while
迭代每一行
echo
每行(l
)到awk
,将第二列($2
)放入$d
(域)变量
然后将其发送到浏览器。您可以用您喜爱的浏览器替换lynx。GUI浏览器将和TUI浏览器一样容易工作
xls2csv domains.xls | sed -e's/"//g' | while read l; do d=`echo "$l" | awk '{print $2}'`; lynx "$d"; done
使用一种不那么讨厌的文件格式会简化很多事情。Shell脚本确实喜欢在文本行上工作,所以第1步应该是转换成不同的格式,例如,CSVIsn您的答案不是与OP想要的相反吗?它是在写,而不是在读。感谢PyExcelator的建议。请注意,
xls2csv
仅适用于Office 97-2003格式。如果您有LibreOffice,您可以运行LibreOffice--headless--convert to/xls/path/to/source.xlsx
对其进行转换。您可以对Excel 2007及更高版本使用xlsx2csv
。
xls2csv domains.xls | sed -e's/"//g' | while read l; do d=`echo "$l" | awk '{print $2}'`; lynx "$d"; done