【问题标题】:For Loop with sed textfile带有 sed 文本文件的 For 循环
【发布时间】:2015-12-08 17:24:30
【问题描述】:

我试过了,但它不起作用。我想知道你是否可以帮助我:

我在一个文件夹中有几个文本文件,我想从该文件夹中的 file1 复制第 111 到 734 行并添加到该文件夹​​中的其他文本文件中。

sed -n 111,734p file1>patch

for i in *;
do sed -i 110rpatch;
done

我做错了什么??

谢谢

【问题讨论】:

  • 对于初学者,您没有在sed 命令行上使用"$i"。 sed 如何知道要处理什么文件。另外,110rpatch 我猜的意思是“在第 110 行读取补丁”,但你测试过吗?我不希望这适用于某些 seds(但我可能是错的)。祝你好运。
  • 我之前试过这个:sed -n 111,734p file1>patch & sed -i 110rpatch file2 并且成功了
  • 那你还有Q吗?或者你可以删除这个。祝你好运。
  • 我的问题属于循环。我不知道为什么我的循环不起作用。感谢您的评论,但我收到一条错误消息:sed: can't read 110rpatch:no such file or directory

标签: linux loops sed


【解决方案1】:

我会把它改写成

sed -n 111,734p file1>patch

for i in *; do 
   case "$i" in patch) continue ;; esac
   sed -i '110rpatch' "$i"
done

由于patch 文件与所有$i 文件位于同一目录中,因此您需要进行案例/继续测试以跳过处理patch 文件。

IHTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多