首页 > 其他分享 >I/O重定向学习感悟与笔记

I/O重定向学习感悟与笔记

时间:2023-11-25 09:01:41浏览次数:29  
标签:感悟 文件 重定向 输出 笔记 ls txt 输入

什么是输入/输出(I/O)重定向?

I/O重定向是指改变程序的标准输入、标准输出和标准错误输出的默认设备,将其与其他设备或文件进行关联。通过I/O重定向,我们可以将程序的输入从键盘转向文件或其他设备,将程序的输出和错误信息输出到文件或其他设备而不是屏幕上。

标准输入重定向

标准输入重定向使用 < 符号来实现,它将一个文件中的内容作为程序的输入。例如,假设我们有一个名为lin.txt的文件,其中包含了一些输入数据,我们可以通过以下方式将该文件内容作为程序的输入:

$ ./program <lin.txt
这样,程序将会读取lin.txt中的内容作为输入,而不是等待用户在终端中手动输入。

  • <<符号

此外,还可以<<EOF通过手动输入直到输入EOF(或者Ctrl-D)。

标准输出重定向

标准输出重定向使用 > 符号来实现,它将程序的输出保存到一个文件中。例如,我们可以通过以下方式将程序的输出保存到tun.txt文件中:

$ ./program > tun.txt

追加输出

可以采用>>将输出重定向到文件并追加在文件结尾,这样就可以避免覆盖文件了。

 

重定向标准输出和错误到同一个文件

可能有这种情况,我们希望捕捉一个命令的所有输出到一个文件。为了完成这个,我们必须同时重定向标准输出和标准错误。有两种方法来完成任务。

  • 第一个,传统的方法, 在旧版本 shell 中也有效:ls -l /bin/usr > ls-output.txt 2>&1
  • 使用这种方法,我们完成两个重定向。首先重定向标准输出到文件 ls-output.txt,然后 重定向文件描述符 2(标准错误)到文件描述符 1(标准输出)使用表示法 2>&1。

 

  • 现在的 bash 版本提供了第二种方法,更精简合理的方法来执行这种联合的重定向:ls -l /bin/usr &> ls-output.txt

 

 

I/O重定向利用重定向建立多行文件

  1. cat << EOF > example.txt
    第一行内容
    第二行内容
    第三行内容
    ...
    EOF
  2. 替换"example.txt"为你想要创建的文件名,并在EOF标记之间输入你想要写入文件的内容。

无论你选择哪种方法,都可以通过重定向操作将文本写入文件。例如,在命令行中使用">"符号将输出重定向到文件:

echo "第一行内容" > example.txt
echo "第二行内容" >> example.txt
echo "第三行内容" >> example.txt

这将创建一个名为example.txt的文件,并将每行内容写入该文件。

请注意,如果文件已经存在,使用">"将会覆盖整个文件内容,而使用">>"将在文件末尾追加内容。

 

tee - 从 Stdin 读取数据,并同时输出到 Stdout 和文件

tee 程序从标准输入读入数据,并且同时复制数据 到标准输出(允许数据继续随着管道线流动)和一个或多个文件。当在某个中间处理 阶段来捕捉一个管道线的内容时,这很有帮助。来看个例子,我们在 grep 过滤管道线的内容之前,来捕捉整个目录列表到文件 ls.txt:

ls /usr/bin | tee ls.txt | grep zip

总结

I/O重定向功能。通过改变程序的标准输入、输出和错误输出的默认设备,我们可以更好地控制程序的输入输出流,提高程序的可用性和灵活性。

标签:感悟,文件,重定向,输出,笔记,ls,txt,输入
From: https://www.cnblogs.com/zs20218539/p/17855172.html

相关文章

  • 20211128《信息安全系统设计与实现》第十三章学习笔记
    一、任务内容自学教材第13章,提交学习笔记(10分)1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核心是要求GPT:“请你以苏格......
  • 第六章 I/O重定向与管道
    LinuxI/O重定向与管道1.I/O重定向1.1标准输入重定向标准输入是从键盘读取数据,使用<可以将标准输入重定向为文件。#示例:将文件input.txt的内容作为标准输入$cat<input.txt解释:cat命令用于将文件内容输出到标准输出。<input.txt表示将文件input.txt的内......
  • 个人云笔记使用分享
    分享一下个人使用的云笔记,Joplin。官方地址:https://joplinapp.org/以前依次使用过语雀、金山文档,ob,最终都放弃了,发现了最适合自己的Joplin。语雀:后来收费了,而且数据全在云上不在本地,放弃了,后来加上服务器大宕机,幸亏提前就不用了;金山文档:数据全在金山云上,先后两件事,WPS扫描用户......
  • 【Python进阶笔记】md文档笔记第6篇:Python进程和多线程使用(图文和代码)
    本文从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。全套md格式笔记和代码自取:请移步这里......
  • 笔记本连接显示器合上盖子后黑屏
    电源选项中有电源按钮和盖子配置时参考百度经验:https://jingyan.baidu.com/article/3065b3b6c010f2ffcef8a420.html电源选项中没有电源按钮和盖子配置时需要通过修改注册表项的Attributes值为2,来打开电源按钮和盖子配置。第一步:powercfg/q,导出电源选项对应的注册表......
  • 学习笔记11
    20211301学习笔记11教材知识点总结TCP/IP协议TCP:代表传输控制协议IP:代表互联网协议IPv4:32位IPv6:64位堆栈顶层:应用程序,用于登录远程主机ssh、用于交换电子邮件、用于web页面的http等应用程序需要可靠的数据传输网络中的数据流路径:IP主机和IP地址主......
  • 排列组合学习笔记
    加法原理有\(n\)类办法,\(a_i(1\lei\len)\)代表第\(i\)类方法的数目。那么共有\(S=a_1+a_2+\cdots+a_n\)种方法乘法原理分\(n\)个步骤,\(a_i(1\lei\len)\)代表第\(i\)个步骤的方法数目。那么共有\(S=a_1\timesa_2\times\cdots\timesa_n\)种方法排列数从\(n\)个......
  • 2023-2024-1 20211306 密码系统设计与实现课程学习笔记11
    20211306密码系统设计与实现课程学习笔记11任务详情自学教材第13章,提交学习笔记知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个......
  • 如何写论文的笔记
    #论题陈述改善稀疏奖励的强化学习有助于移动机器人动态避障#收集论证#阅读文献-记录阅读时做一个word文档,五列的表格。第一列,文献标题。第二列,期刊名称。第三列,研究对象、问题。第四列,研究方法、理论、视角。第五列,数据来源。为了对抗网络上不相关,不准确,动机险恶的信息,你们......
  • 考研数学笔记:在计算无穷限积分的时候,要注意应用极限的思想
    在计算无穷限积分的时候,要注意应用极限的思想对于含有反三角函数的积分可以用对应的三角函数代换求解如何通过通解还原微分方程?判断微分方程解的形式有时候需要分类讨论......