小编Sel*_*mez的帖子

如何在 bash 脚本中使用 awk 处理多行记录?

example.txt 在下面

Restaurant: McDonalds 
City: Miami
State: Florida
Address: 123 Biscayne Blvd
Phone: 911

Restaurant: 5 guys
City: Atlanta
State: Georgia
Address: 123 Peachtree Rd
Phone: 911

Restaurant: KFC
City: NYC
State: NY
Address: 123 Madison Square
Phone: 911
Run Code Online (Sandbox Code Playgroud)

我使用 bash 脚本,假设我想从上面的文件中按名称搜索餐厅。询问用户输入餐厅名称,它应该打印有关该餐厅的信息(5 行)。

awk '/McDonalds/> /KFC/' example.txt
Run Code Online (Sandbox Code Playgroud)

我知道上面的代码行将打印与模式“麦当劳”和“肯德基”匹配的整行,但这只会打印文本文件中的第一行,而不是有关该餐厅的其余信息。我如何告诉它仅从用户输入的餐厅名称中打印所有信息(5 行)?

scripts awk

17
推荐指数
1
解决办法
6万
查看次数

Bash 脚本难度

我正在创建一个 bash 脚本,我想创建一个菜单。当我运行代码时,它会显示菜单,但问题是当用户输入一个选项时,无论选择什么选项,它都会不断重新打印菜单以一次又一次地询问。

#!/bin/bash

declare -i choice=1;

while ((choice!=5))
    do
    echo "Main Menu:"
    echo -e "\t(a) Add"
    echo -e "\t(b) Remove"
    echo -e "\t(c) Seach"
    echo -e "\t(d) Display"
    echo -e "\t(e) Exit"
    echo -n "Please enter your choice:"
    read choice
    case $choice in
           "a"|"A")
            echo "You entered a"
            ;;
            "b"|"B")
            echo "You entered b"
            ;;
            "c"|"C")
            echo "You entered c"
            ;;
            "d"|"D")
            echo "You entered d"
            ;;
            "e"|"E")
            echo "You entered e"
            ((choice=5))
            ;;
            *)
            echo "invalid answer"
            ;; …
Run Code Online (Sandbox Code Playgroud)

bash scripts

3
推荐指数
1
解决办法
1077
查看次数

在 bash 中创建嵌套菜单

我想在选择时在选项“a”下创建更多菜单。如果用户输入选项“a”,我希望它有几个菜单供您选择,其中一个选项是返回“主菜单”。这是我遇到的两个问题。我尝试为此处的菜单执行与下面相同的格式,并将其放在“A”代码块下,但这不起作用。

#!/bin/bash

ok=0;

while ((ok==0))
do
echo "Main Menu:"
echo -e "\t(a) More Menu Options "
echo -e "\t(b) Exit"
echo -n "Please enter your choice:"
read choice
case $choice in
    "a"|"A")
    ok=1

    ;;
    "b"|"B")
    exit
    ;;
        *)
        echo "invalid answer, please try again"
        ;;

esac
done
Run Code Online (Sandbox Code Playgroud)

bash

2
推荐指数
1
解决办法
5745
查看次数

如何从文本文件中按字母顺序排列多行记录?

嗨,我正在使用 bash 脚本,下面有 example.txt。如何按餐厅名称将以下4个餐厅信息按字母顺序排列并打印出来?请注意,按字母顺序打印时的格式应与以下相同,包括城市、州、地址、电话。

Restaurant: McDonalds 
City: Miami
State: Florida
Address: 123 Biscayne Blvd
Phone: 91341

Restaurant: Five guys
City: Atlanta
State: Georgia
Address: 123 Peachtree Rd
Phone: 9234211

Restaurant: KFC
City: NYC
State: NY
Address: 123 Madison Square
Phone: 95311

Restaurant: Taco Bell
City: LA
State: CA
Address: 123 Rodeo Drive
Phone: 911
Run Code Online (Sandbox Code Playgroud)

bash scripts

1
推荐指数
1
解决办法
225
查看次数

标签 统计

bash ×3

scripts ×3

awk ×1