首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

sed在读取while循环中不工作

sed是一种流式文本编辑器,用于对文本进行处理和转换。它通常用于在命令行中进行文本替换、删除、插入和其他编辑操作。在读取while循环中,sed可能不会按预期工作的原因可能是因为while循环中的输入数据没有正确传递给sed命令。

要解决这个问题,可以尝试以下几种方法:

  1. 确保while循环中的输入数据正确传递给sed命令。可以使用管道符号(|)将while循环的输出传递给sed命令,例如:while read line; do echo "$line" | sed 's/foo/bar/g' done < input.txt这里假设while循环从名为input.txt的文件中读取数据,并将每行数据传递给sed命令进行替换操作。
  2. 使用sed的-i选项来直接修改文件内容。在某些情况下,while循环可能不会正确处理sed命令的输出。可以尝试使用sed的-i选项来直接修改文件内容,而不是通过while循环来处理。例如:sed -i 's/foo/bar/g' input.txt这将直接在input.txt文件中进行替换操作,而不需要使用while循环。
  3. 检查sed命令的语法和参数是否正确。确保sed命令的语法和参数正确无误,以确保它能够按预期工作。可以参考sed的官方文档或其他可靠资源来学习和了解sed命令的正确用法。

总结起来,要解决sed在读取while循环中不工作的问题,需要确保输入数据正确传递给sed命令,并检查sed命令的语法和参数是否正确。如果问题仍然存在,可能需要进一步调试和排查其他可能的原因。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 中为什么推荐 while环中使用 sleep()

前言最近逛 CSDN 看到一篇文章,文章大意是说为什么环中推荐使用 sleep 操作,原因在于线程挂起和唤醒会有很大的性能消耗,并推荐使用 Timer 及 ScheduledExecutorService...Demo { private static final boolean FLAG = true; public static void main(String[] args) { while...// do something }}上面的代码你可能会得到下面的警告:Call to ‘Thread.sleep()’ in a loop, probably busy-waiting// 循环中调用...方案是否合理记住一点,讨论方案永远不能脱离场景,没有一种方案可以适应所有的场景,我们永远只是探讨适合当前场景的方案。... Java AQS 等待获取锁和线程池任务为空等待新任务时,会使用等待和唤醒操作轮询机制 和 等待和唤醒 一般会结合使用,避免线程频繁的挂起和唤醒。

68030

sed的用法详解

d’ a.txt 删除所有包含xml的行 sed '/^install/d' a.txt 删除所有以 sed '$d' a.txt删除最后一行 sed '/^$/d' a.txt删除所有空行 sed...a.txt 4.sed文本块的处理 sed文本块处理动作 i 行前插入文本:2iYY 第二行之前插入文本行‘YY’ 4,7iYY 第4-7行的每一行前添加文本 a 行后插入文本:2aYY 第2...5.sed高级应用 文件导入导出 r:读取文件 3r b.txt 第3行下方插入文本b.txt 4,7r b.txt 第4-7行每一行后插入文件b.txt w:保存到文件 3w c.txt 将第...p' /etc/passwd n读下一行,读取下一行进行处理 sed -n 'p;n' reg.txt 读取奇数行 sed -n 'n;p' red.txt 读取偶数行 sed综合脚本示例 根据/etc...:whilewhile(条件) do while循环dowhile(条件) for循环: for(初值;条件;步长) cat sshd.txt |awk '}' 统计/etc/passwd中root

4.2K31

Shell笔记5:sed用法详解

d’ a.txt 删除所有包含xml的行 sed '/^install/d' a.txt 删除所有以 sed '$d' a.txt 删除最后一行 sed '/^$/d' a.txt删除所有空行 sed...sed -f test.sed  a.txt 4.sed文本块的处理 sed文本块处理动作 i 行前插入文本:2iYY 第二行之前插入文本行‘YY’ 4,7iYY 第4-7行的每一行前添加文本 a...' /etc/hosts 5.sed高级应用 文件导入导出 r:读取文件 3r b.txt 第3行下方插入文本b.txt 4,7r b.txt 第4-7行每一行后插入文件b.txt w:保存到文件...p' /etc/passwd n读下一行,读取下一行进行处理 sed -n 'p;n' reg.txt 读取奇数行 sed -n 'n;p' red.txt 读取偶数行 sed综合脚本示例 根据/etc...:whilewhile(条件){编辑指令} do while循环do{编辑指令}while(条件) for循环: for(初值;条件;步长){编辑指令} cat sshd.txt |awk '{for

1.2K10

三大文本处理工具grep、sed及awk

1、  搜索包含特定模式的文本行: 2、  从stdin中读取: 3、  单个grep命令可以对多个文件进行搜索: 4、  --color选项输出行中着重标记出匹配到的单词: 5、  grep...While this will avoid breaking links (symbolic or hard), the resulting editing operation...stdin中读取输入,不影响原本的内容 2、默认情况下sed命令打印替换后的文本,如果想连原文本一起修改加-i命令,-i: 3、  之前的sed都是替换第一个匹配到的内容,想要全部替换就要在末尾加g:...1、工作原理 (1)执行BEGIN { commands }语句块中的语句。 (2)从文件或stdin中读取一行,然后执行pattern { commands }。...如果不提供该语句块,则默认执行{ print },即打印所读取到的每一行。awk对于每一行,都会执行这个语句块。这就像一个用来读取行的while循环,环中提供了相应的语句。

64330

C语言中循环语句总结

while坏:  for循环:  while和for循环的对比: 区别:for 和 while 实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部 分⾮常集中,便于代码的维护...do while循环 使用条件:使⽤循环体⾄少被执⾏⼀次的场景下 eg:输⼊⼀个正整数,计算这个整数是⼏位数?...环中 continue 后的代码,直接去到循环的调整部分。...循环中continue对代码的运行影响: 分析代码可以知道它们修改条件的位置不同 对于while循环的修改条件continue后面所以当i=5时,他没法继续修改,而是陷入i=5的死循环  对于for循环的修改条件...continue上面,所以当i=5时,它会跳出printf函数来到上面进行条件修改,i=5这个基础上进行i++ do while语句中break和continue的作用跟while一样: goto语句

11210

异步,同步,阻塞,非阻塞程序的实现

以后这样了。 实现异步非阻塞是一个大命题,这里只从原理出发。我会慢慢修改这篇文章。 本文将从异步sleep的实现入手,来讲解异步非阻塞程序的原理。...如果是同步,线程会等待接受函数的返回值(或者轮函数结果,直到查出它的返回状态和返回值)。如果是异步,线程不需要做任何处理,函数执行完毕后会推送通知或者调用回调函数。...线程同步调用下,也能非阻塞(同步轮非阻塞函数的状态),异步下,也能阻塞(调用一个阻塞函数,然后函数中调用回调,虽然没有什么意义)。 下面,我会慢慢实现一个异步非阻塞的sleep。...""" while time.time() < now + 2: yield def wait(name): print(name, " start") now...上面的代码中,一个while环中timer的状态。由于timer存在于wait中。所以需要把timer“提取”出来。

7.5K10

Linux shell利用sed如何批量更改文件名详解

末尾添加g用于替换所有匹配项,而不仅仅替换第一个匹配项。...文件名包含空格的解决方法 我们可以直接将文件列表写到 for 循环中,而不是通过命令来得到,例如: for file in "file1 file2 file3" do ... done 可以看到 for...设置 IFS 变量的命令需要放在 for 循环之前: IFS=$'\n' for file in `ls` do ... done 也可以直接使用 while read 命令一次读取一行到变量 file...中: ls | grep "*.txt" | while read file do ... done 使用 find 获取文件列表 之前的示例中,我们是通过 ls 命令来获取文件列表。...该命令可以多个层次的目录中查找文件,并能够设定诸如创建时间、文件大小、所有者等多种条件,查找起文件来特别方便灵活。

4K20

MySQL数据库,详解流程控制语句(四)

这块和while 同,while是先判断条件是否成⽴再执⾏循环体。 示例1:⽆循环控制语句 根据传⼊的参数v_count向test1表插⼊指定数量的数据。...本⽂主要介绍了mysql中控制流语句的使⽤,请⼤家下去了多练习,熟练掌握 2. if函数常⽤select中 3. case语句有2种写法,主要⽤select、begin end中,select中end...后⾯可以省略case, begin end中使⽤不能省略case 4. if语句⽤begin end中 5. 3种循环体的使⽤,while类似于java中的while循环,repeat类似于java...中的do while 循环,loop类似于java中的死循环,都⽤于begin end中 6....循环中体中的控制依靠leave和iterate,leave类似于java中的break可以退出 环,iterate类似于java中的continue可以结束本次循环

2.6K10

20 分钟 Shell 入门深度教程

() { # 读取配置文件 echo "开始读取配置文件.../gnu-sed/4.4/bin:\$PATH\"" echo $command echo "" exit 1 fi} sed命令功能繁多,所以这里只讲讲我实战中使用到的,首先了解小sed...命令的结构 sed -param operation/pattern/replacement/flags sed param -e script 处理输入时,将script中指定的命令添加到已有的命令中...-f file 处理输入时,将file中指定的命令添加到已有的命令中 -n 产生命令输出,使用print命令来完成输出 -i 把修改写入到原文件中 sed operation s 替换 a 追加...使用while循环获取用户的输入,while环中使用case分支处理不同的操作 以下脚本是injectContentShell#injectedContentShell.sh文件中的一部分 function

1.3K60

Python基础教程之循环

天空中有 10 个太阳,后羿的任务是要射掉其中的九只,留下一只天上工作来保障地球的正常运转。也就是说,当天空中太阳数量为 2~10 时,后羿需要保持射箭动作。...坏 我们也可以使用 while 循环来帮助后羿做判断,我们一起先来了解下 while 的语法规则: while 循环:只要条件满足,就会一直执行一组语句。...2.1 while循环语法 一次循环的过程中,首先会判断 condition 是否为 True。如果为 True,则执行循环体语句。...2.2 while坏流程图 2.3 实例 和 for 循环一样,我们一起来看下使用 while 循环打印出:1~20。...3.2 continue 3.2.1 将continue用于for坏 我们先一起来看下continue for 循环的应用,大家点击运行。

1.9K20

常见负载均衡策略「建议收藏」

什么是负载均衡 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等...,从而协同完成工作任务。...基于这个前提,轮调度是一个简单而有效的分配请求的方式。然而对于服务器不同的情况,选择这种方式就意味着能力比较弱的服务器也会在下一轮循环中接受轮,即使这个服务器已经不能再处理当前这个请求了。...这个值 L7 配置界面设置。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

6.6K30

好用的parallel命令 「纯干货」

简介 有时,我们需要处理一批数据,使用while循环是个不错的想法,但while环中的命令是一个一个执行的,如果要批量处理的数据很多,执行时间就会很长,而parallel可以让命令并行执行,从而缩短命令执行时间...复制代码 使用while循环处理 $ time while read -r -a line; do curl -X POST http://localhost:8088/user/add -...其中--bar适合待处理数据量确定的场景,因为parallel需要读取所有数据后才能根据数据总量计算进度条。...中的那行数据末尾加一个ok,表示执行成功,然后在前面使用grep找包含ok的数据,就达到了命令每次都处理未处理或处理失败数据的逻辑。...而sem -j1保护了sed,避免sed命令并发执行。

1.1K30

Shell 循环中实现展示进度百分比的脚本方法

Shell 循环中实现展示进度百分比的脚本方法 当我需要处理一个几万行的文件的时候,需要处理的时间是比较长的。我一开始的想法是,没处理一行,就输出一个 # 号。...但是这样还是会出现很多很多的 # 号,即便是放在一行,也是非常优雅的。所以,我想实现一个展示进度百分比的脚本。...但是得到的结果我不是很满意: 999 3.log 结果的前面有几个空格,我得把空格去掉,于是代码就改成了 wc -l $file | sed 's/^[ \t]*//g' 这样就去掉了开头的空格...' ' -f1) # 每行遍历循环 while read line; do # 输出百分比 echo -en "\b\b\b\b"`echo $i*100/$l | bc `'%'...以上脚本均在 mac 下测试通过, linux 下可能会有稍许不同。

2K70

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券