- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
你好,我是 shell 编程的新手,希望你能指导我,谢谢。
您好,我需要一个函数来从 .txt 文件中搜索书名或作者,并输出以下内容
Title:*Enter*
Author:Scissorhands
找到 3 条记录:傻瓜版 C++,John Scissorhands,15.01 美元、10、5Java 傻瓜版,剪刀手玛丽,16.02 美元,20 岁,15 岁VB.NET 傻瓜版,剪刀手爱德华,17.03 美元、30 美元、25 美元
例如
Found 3 records :
C++ for dummies, John Scissorhands, $15.01, 10, 5
Java for dummies, Mary Scissorhands, $16.02, 20, 15
VB.NET for dummies, Edward Scissorhands, $17.03, 30, 25
我的文件格式如下
书名:作者:价格:数量:售出数量
哈利波特:詹姆斯:12.99:197:101
function Search_book
{
FILE="/home/student/Downloads/BookDB.txt"
echo found 1 records : $FILE contents
cat FILE
}
最佳答案
编辑:抱歉,我误解了你的问题。
#!/bin/bash
read -p "Enter search term: " search
perl -ne '
BEGIN{ $pattern = $ARGV[0]; shift; $n=0 }
@a=split /:/;
if ($a[0] =~ m/$pattern/i or $a[1] =~ m/$pattern/i) {
print "$a[0], $a[1],\$$a[2],$a[3],$a[4]\n";
$n += 1;
}
END{ print "Found $n title(s).\n" }
' "$search" /home/student/Downloads/BookDB.txt
输出:
$ <b>./search.sh</b>
Enter search term: <b>star wars vi</b>
Title: Star wars VI - return of the jedi
Found 1 title(s).
并不是说您需要通配符的正则表达式(即 .
而不是 ?
,.*
而不是 *
等),并且您无需在搜索词的开头/结尾放置通配符即可在给定(子)字符串中的任何位置查找匹配项。
当然你也可以完全用 Perl 来做,没有 shell 脚本包装器:
#!/usr/bin/env perl
use strict;
use warnings;
my $booklist = './books.txt';
my @book;
print "Enter search term: ";
chomp (my $pattern = <>);
open BOOKS, "<$booklist" or die $!;
my $n = 0;
foreach (<BOOKS>) {
chomp;
@book = split /:/;
if ($book[0] =~ m/$pattern/i or $book[1] =~ m/$pattern/i) {
print "$book[0], $book[1],\$$book[2],$book[3],$book[4]\n";
$n += 1;
}
}
close BOOKS;
print "Found $n title(s).\n";
对于 awk解决方案见Adrian Frühwirth's answer .
关于linux - 按书名/作者搜索书籍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17851390/
我的英语很差,抱歉 这是我的结构: bookstore ---author(app1) ---book(app2) 或者在代码中: from django.db import models from
我有以下脚本从C:驱动器中检索特定文件类型,并将特定文件属性输出到定界的CSV文件。我还希望能够检索文件所有者和作者。很感谢任何形式的帮助。 # PowerShell script to list t
我们厌倦了掉毛。所以我们要使用 black在我们的项目中。不幸的是,它几乎改变了我们项目中的所有其他行,这会使我们丢失大部分作者信息。我们使用 annotate在 pycharm 或 git blam
我在我的asp.net网站中嵌入了java applet来进行数字签名,它在本地主机上工作,但是当发布它时,java applet在浏览器上运行但是未定义在java小程序上调用函数的java脚本代码
我无法找出一种有效的方法来建立表之间的关系。我想拥有一个包含书籍,作者,出版商和注册用户的数据库,并拥有他们的书架(阅读,当前阅读,想要阅读(或计划阅读))。我希望用户能够选择他们已经阅读,想要阅读或
我已经将我的 Git 作者作者姓名从“名尾 ”到“名尾 ” 这两个电子邮件地址与不同的 Github 帐户相关联,我正在将我所有的个人项目迁移到第二个。 我的问题是,我过去在某些私有(private)
我正在使用 svn2git 从现有的 SVN 存储库创建 Git 存储库。我把它全部下载了(所有 10 多个分支、10 多个标签、>4000 次提交)并在 Git 存储库中。现在,不幸的是,所有的作者
问题: 在 HTML 中,您可以使用 author 元标记(或 DC creator)来指示某人是信息(即内容)的作者。但是,我希望能够在元标记中将自己标记为 Web 应用程序开发人员。 大多数人(在
我确信在 git 中有一种方法可以做到这一点,但我的搜索结果是空的。有没有一种简单的方法可以从一次提交中获取消息、提交作者、提交日期和其他信息,并使用这些数据修改第二次提交,而无需复制实际的提交内容?
我已经设置了自己的私有(private) git 服务器,并且有一个 5 人的团队。我已经设置了他们的所有用户帐户,但是我如何防止由随机的奇怪帐户完成对远程的提交。因为我的一些团队也使用 github
我正在阅读这篇文章“http://lethain.com/introduction-to-architecting-systems-for-scale/”。最后,作者提到了平台层。我不明白这一层的范围
我需要在 Mac 上更改 PDF 文件的作者。我曾尝试使用 grep 和 sed 来完成此操作,但没有成功。 如果我在 Preview.app 中打开一个 PDF 文件并转到“工具”>“显示检查器”,
我正在运行此查询。它在 DBpedia ( http://dbpedia.org/sparql ) 上运行良好,但在我的 Java 代码中不起作用: PREFIX res: PREFIX dbped
我有一个用 C 语言模拟读者-作者问题的简单程序。要求用户输入作者数和读者数。然后创建随机数的编写器 - 线程和读取器 - 线程。项目的写入由全局变量 itemsCount 模拟 - 它代表新插入项目
我尝试在 wordpress 中设置一个作者页面。但是所有的作者页面都被重定向到主页。我用谷歌搜索,他们建议禁用插件,然后检查作者页面。我试了一下,发现 Yoast wordpress SEO plu
所以我从 SQL 背景转向 NoSQL。所以我知道我应该在这里“非规范化”。所以基本上我对我必须做的事情有一个简化的想法; 用户这些文件包含身份验证信息,可能是付款方式、用户名和各种详细信息 帖子这些
所以我已经成功地以 domenic 的身份提交了一个 GitHub 项目和 Domenic Denicola .这很烦人,尤其是对于生成摘要。 我知道 how to change the auth
在 PhpStorm 中,我很难在项目设置中设置默认的 git 作者: 我使用“Action finder”并搜索了设置,但我没有找到这个选项。 有谁知道我可以在哪里更改这个值,这样我就不必在每次提交
我一直在尝试使用 php5-ffmpeg 扩展来获取远程 mp3(和其他格式)元数据。 尽管我总是缺少标题、作者、评论、艺术家详细信息,但它正在工作。 我一直在网上搜索答案,但没有找到任何解决方案。
通常,将一些带有作者,版本和许可证信息的行添加到源文件的顶部被认为是一种好习惯。例如,Gnu GPL v3建议添加 Copyright (C) This program is free sof
我是一名优秀的程序员,十分优秀!