Linux命令行精巧使用——curl可以简单“解析”页面(用到的工具:管道符“|”/grep/sed/awk)(DeepSeek)

命令巧合有作为,管道符号显神威。


笔记模板由python脚本于2025-07-11 12:32:40创建,本篇笔记适合喜欢Linux命令行指令的coder翻阅。


学习的细节是欢悦的历程

博客的核心价值:在于输出思考与经验 ,而不仅仅是知识的简单复述



自学并不是什么神秘的东西,一个人一辈子自学的时间,总是比在学校学习的时间长;没有老师的时候总是比有老师的时候多。

------ 华罗庚


---== 彰显C位 ==---

  1. ,可以在评论区++书写++任何想法
  2. (我将在看到的第一时间回应)
  3. (预置空地)

---== 彰显C位 ==---




命令巧合有作为 curl巧用 ( 管道符号显神威)



本文质量分:
96 96 96
本文地址: articleUrl

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ curl巧用
    • 1、 前言
    • 2、 使用curl解析页面数据
      • 2.1 基本获取页面内容
      • 2.2 结合文本处理工具解析
        • 2.2.1 使用grep提取特定内容
        • 2.2.2 使用sed处理文本
        • 2.2.3 使用awk提取数据
      • 2.3 结合HTML/XML解析工具
        • 2.3.1 使用xmllint ~(需要安装libxml2)~
        • 2.3.2 使用hxselect ~(来自html-xml-utils包)~
        • 2.3.3 使用pup ~(专门用于HTML解析)~
      • 2.4 结合jq解析JSON数据
      • 2.5 高级用法示例
        • 2.5.1 提取所有链接
        • 2.5.2 提取页面标题
      • 2.6 常用curl选项
    • 3、 Linux 下定义变量的方法
      • 3.1 基本变量定义
      • 3.2 访问变量值
      • 3.3 变量类型
        • 3.3.1 局部变量 (默认)
        • 3.3.2 环境变量
        • 3.3.3 只读变量
      • 3.4 特殊变量
      • 3.5 变量操作
        • 3.5.1 字符串操作
        • 3.5.2 默认值
      • 3.6 数组变量
      • 3.7 删除变量
      • 3.8 查看所有变量
      • 3.9 变量作用域
      • 3.X 引号的区别
    • 4、 Linux命令行中的注释方法
      • 4.1 单行注释
      • 4.2 多行注释方法
        • 方法一:每行加
        • 方法二:使用冒号和 here-document
        • 方法三:使用 if false 块
      • 4.3 脚本中的特殊注释
        • 4.3.1 Shebang 注释~(必须放在脚本第一行)~
        • 4.3.2 功能说明注释
      • 4.4 命令行中的临时注释
      • 4.5 注释最佳实践
      • 4.6 禁用命令执行~(通过注释)~
    • 5、结语
    • ※ 附录本文用到的"命令行指令"

◆ curl巧用

1、 前言

今天由于公交🚌晚点5分钟,没赶上公司交通车,公交倒腾上班,车上无聊想起我之前在 P y t h o n Python Python用os.system('curl url > filename')将页面源码写入磁盘文本现读取解析的经历,突发奇想,是不是可以直接在 L i n u x Linux Linux命令行得到解析数据......

  我讨教了我的『免费电子书童』 D e e p S e e k DeepSeek DeepSeek------


2025  2025  2025


2、 使用curl解析页面数据

curl是一个强大的命令行工具,用于传输数据,但它本身不直接提供解析功能。不过你可以结合其他工具来解析获取的页面数据。

以下是几种常见方法:

2.1 基本获取页面内容

bash 复制代码
curl https://example.com

这个简单,一学就会。😋

2.2 结合文本处理工具解析

我以我的博文 〖诗意 2 0 2 5(36.《天潮》 2025-07-03)------共谱新篇同讨如诗生活〗地址"https://blog.csdn.net/m0_57158496/article/details/145225375"为例试码。

base 复制代码
url=https://blog.csdn.net/m0_57158496/article/details/145225375 # 我的博文〖小诗《苦》赏析("诗人"我/智普清言/DeepSeek)〗地址

curl $url # 读取我的博文页面源码
  • 效果截屏:

    指令

    获取到的我的博文源码文本
2.2.1 使用grep提取特定内容
bash 复制代码
curl -s https://example.com | grep "pattern"

命令:

base 复制代码
curl -s $url | grep "pattern" # grep提取特定内容
  • 效果截屏:
2.2.2 使用sed处理文本
bash 复制代码
curl -s https://example.com | sed -n '/<title>/p'

命令:

base 复制代码
curl -s $url | sed -n '/<title>/p' # 用sed提取文章标题
  • 效果截屏图片:
2.2.3 使用awk提取数据
bash 复制代码
curl -s https://example.com | awk '/pattern/{print $0}'

命令:

base 复制代码
curl -s $url | awk '/pattern/{print $0}'
  • 效果截屏图片:

2025  2025  2025


2.3 结合HTML/XML解析工具

需要安装"外挂"程序的玩儿花样儿,我就不用试炼了。如您有兴趣,试试。😋

2.3.1 使用xmllint (需要安装libxml2)
bash 复制代码
curl -s https://example.com | xmllint --html --xpath "//title" -
2.3.2 使用hxselect (来自html-xml-utils包)
bash 复制代码
curl -s https://example.com | hxselect "title"
2.3.3 使用pup (专门用于HTML解析)
bash 复制代码
curl -s https://example.com | pup 'title'

2.4 结合jq解析JSON数据

如果API返回JSON数据:

bash 复制代码
curl -s https://api.example.com/data.json | jq '.key'

2.5 高级用法示例

2.5.1 提取所有链接
bash 复制代码
curl -s https://example.com | grep -o 'href="[^"]*"' | sed 's/href="//;s/"$//'

指令:

base 复制代码
curl -s $url | grep -o 'href="[^"]*"' | sed 's/href="//;s/"$//' # 提取掺链接
  • 效果截屏图片:


    如图所鉴,已经获取了页面的所有url链接文本。😎
2.5.2 提取页面标题
bash 复制代码
curl -s https://example.com | grep -o '<title>[^<]*</title>' | sed 's/<title>//;s/<\/title>//'

指令:

base 复制代码
curl -s $url | grep -o '<title>[^<]*</title>' | sed 's/<title>//;s/<\/title>//' # 提取页面标题
  • 效果截屏图片:

2.6 常用curl选项

  • -s 静默模式(不显示进度/错误信息)
  • -o FILE 输出到文件
  • -L 跟随重定向
  • -H 添加请求头
  • -d 发送POST数据

对于复杂的网页解析,建议使用专门的工具如BeautifulSoup(Python)或结合编程语言来实现更灵活的解析。

这只是多晓得一个『获取信息的途径』而已,我的感觉是比re模块(Python)手撕页面数据不只慢一星半点,简直可以说是"龟速/蜗牛"。😋


2025  2025  2025


3、 Linux 下定义变量的方法

Linux shell 环境中,定义变量是基本的操作之一。以下是定义和使用变量的各种方法:

3.1 基本变量定义

bash 复制代码
变量名=值

示例:

bash 复制代码
name="John Doe"
age=30
path=/usr/local/bin

注意

  • 等号两边不能有空格
  • 值中有空格时需要用引号括起来

3.2 访问变量值

使用 $ 符号访问变量值:

bash 复制代码
echo $name
echo "My name is $name and I'm $age years old."

3.3 变量类型

3.3.1 局部变量 (默认)

只在当前 shell 中有效

bash 复制代码
local_var="Hello"
3.3.2 环境变量

使用 export 使变量对子进程可见

bash 复制代码
export PATH=$PATH:/new/path

或先定义再导出:

bash 复制代码
MY_VAR="value"
export MY_VAR
3.3.3 只读变量

定义后不能被修改

bash 复制代码
readonly PI=3.14159

3.4 特殊变量

  • $0 - 脚本名称
  • $1, $2, ... - 脚本参数
  • $# - 参数个数
  • $? - 上一个命令的退出状态
  • $$ - 当前 shell 的进程 ID
  • $USER - 当前用户名
  • $HOME - 用户主目录
  • $PWD - 当前工作目录

3.5 变量操作

3.5.1 字符串操作
bash 复制代码
str="Hello World"
echo ${#str}       # 获取长度
echo ${str:6:5}    # 子字符串(从第6个开始取5个)
echo ${str/World/Linux}  # 替换
3.5.2 默认值
bash 复制代码
echo ${undefined_var:-"默认值"}  # 如果未定义使用默认值
echo ${defined_var:+"替代值"}    # 如果已定义使用替代值

3.6 数组变量

bash 复制代码
fruits=("Apple" "Banana" "Orange")
echo ${fruits[0]}     # 访问第一个元素
echo ${fruits[@]}     # 访问所有元素
echo ${#fruits[@]}    # 获取数组长度

3.7 删除变量

bash 复制代码
unset variable_name

3.8 查看所有变量

查看所有已定义的变量:

bash 复制代码
set

查看所有环境变量:

bash 复制代码
env
printenv

3.9 变量作用域

在函数中定义局部变量:

bash 复制代码
function myfunc() {
    local local_var="只在函数内有效"
    global_var="全局有效"
}

3.X 引号的区别

  • 双引号:允许变量扩展

    bash 复制代码
    echo "Value is $var"
  • 单引号:禁止变量扩展

    bash 复制代码
    echo 'Value is $var'  # 会输出 $var 而不是变量值

掌握这些变量定义和使用方法,可以让你在 Linux shell 脚本编写中更加得心应手。


2025  2025  2025


4、 Linux命令行中的注释方法

在 Linux 命令行和 shell 脚本中,有多种方式可以添加注释文本:

4.1 单行注释

使用 # 符号开始注释,从 # 开始到行尾的内容都会被忽略:

bash 复制代码
# 这是一个单行注释
command  # 这是命令后的注释

4.2 多行注释方法

虽然 shell 没有直接的多行注释语法,但有几种变通方法:

方法一:每行加
bash 复制代码
# 这是第一行注释
# 这是第二行注释
# 这是第三行注释
方法二:使用冒号和 here-document
bash 复制代码
: <<'COMMENT'
这是多行注释的第一行
这是第二行
可以包含特殊字符如 $、!、* 等
COMMENT
方法三:使用 if false 块
bash 复制代码
if false; then
这是被注释的代码块
可以有多行内容
fi

4.3 脚本中的特殊注释

4.3.1 Shebang 注释(必须放在脚本第一行)
bash 复制代码
#!/bin/bash
# 这是一个bash脚本
4.3.2 功能说明注释
bash 复制代码
#!/bin/bash
# 脚本名称: backup.sh
# 作者: John Doe
# 创建日期: 2023-10-01
# 描述: 这个脚本用于执行系统备份
# 用法: ./backup.sh [选项] [参数]

4.4 命令行中的临时注释

在命令行中,可以使用 # 注释部分命令:

bash 复制代码
$ echo "Hello" # 这是注释部分
Hello

4.5 注释最佳实践

  1. 解释复杂的命令或逻辑

  2. 记录脚本的用途和参数

  3. 标记待办事项或需要改进的地方

    bash 复制代码
    # TODO: 需要添加错误处理
    # FIXME: 这里的逻辑有问题
  4. 避免过度注释显而易见的代码

  5. 保持注释与代码同步更新

4.6 禁用命令执行(通过注释)

在测试脚本时,可以注释掉不想执行的命令:

bash 复制代码
# rm -rf /tmp/oldfiles  # 先注释掉危险的删除命令

记住,良好的注释习惯可以大大提高脚本的可维护性和可读性。


2025  2025  2025


5、结语

当然,掌握了『语言』的"注释技术",可以更好的玩转语言。🤗我在 P y t h o n Python Python中用'''三引号对来"冷却"暂时不想执行的代码块,让『程序调试』更风生水起。😎💪


2025  2025  2025


※ 附录本文用到的"命令行指令"

本文用到的nux指令集:

base 复制代码
# 本博文的试炼指令 #

# 定义变量,简化后续指令 #
url=https://blog.csdn.net/m0_57158496/article/details/145225375 # 我的博文〖诗意 2 0 2 5(36.《天潮》 2025-07-03)------共谱新篇同讨如诗生活〗地址

curl $url # 读取我的博文页面源码

curl -s $url | grep "pattern" # grep提取特定内容

curl -s $url | sed -n '/<title>/p' # 用sed提取文章标题

curl -s $url | awk '/pattern/{print $0}' # 提取特定内容

curl -s $url | grep -o 'href="[^"]*"' | sed 's/href="//;s/"$//' # 提取掺链接

curl -s $url | grep -o '<title>[^<]*</title>' | sed 's/<title>//;s/<\/title>//' # 提取页面标题

2025  2025  2025


上一篇:
三元诗赏(Python)------DeepSeek对我两首小诗的解读和同情(24)


我的HOT博:

本次共计收集481篇博文笔记信息,总阅读量76.75w。数据采集于2025年06月11日 23:23:07,用时8分53.7秒。阅读量不小于6.00k 的有 11 11 11篇。


推荐条件 阅读量突破6.00k (更多热博,请点击蓝色文字跳转翻阅)


  • 截屏图片

      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新 发笔记被误杀而落马。躺"未过审"还不如回收站 ,回收站还不如永久不见。😪值此年底清扫,果 断移除。留此截图,以识"曾经"。2023-12-31)

2 0 2 5  2 0 2 5  2 0 2 5


精品文章:

来源: 老齐教室


Python 入门指南 【Python 3.6.3】


好文力 荐:


CSDN实用技巧博文: