Sed 将文件作为命令行参数传递,其中包含临时更改的文本

Sed 将文件作为命令行参数传递,其中包含临时更改的文本,sed,command-line,Sed,Command Line,以下是场景: 命令行命令需要输入文件作为参数 我要使用的输入文件中有我希望命令忽略的文本 我无法创建删除了错误文本的临时文件 我尝试使用sed,使用正则表达式查找错误文本,并将其替换为零。sed的输出可以保存到一个临时文件中,该文件作为输入文件参数传递给命令,但是正如我所说,我无法创建临时文件。有没有一种方法可以直接将sed的输出作为输入文件参数,或者有没有一种更好的方法可以这样做?这是特定于bash的“进程替换”: 命令未创建临时文件: sed 's/bad//g' file | comm

以下是场景:

  • 命令行命令需要输入文件作为参数
  • 我要使用的输入文件中有我希望命令忽略的文本
  • 我无法创建删除了错误文本的临时文件

我尝试使用
sed
,使用正则表达式查找错误文本,并将其替换为零。sed的输出可以保存到一个临时文件中,该文件作为输入文件参数传递给命令,但是正如我所说,我无法创建临时文件。有没有一种方法可以直接将
sed的输出作为输入文件参数,或者有没有一种更好的方法可以这样做?

这是特定于
bash的“进程替换”:


命令未创建临时文件:

sed 's/bad//g' file | command
或者,如果命令的参数绝对需要“文件”名:

sed 's/bad//g' file | command -
e、 g:


如果这不是您想要的(例如,如果您需要在命令中多次解析输入文件),则编辑您的问题以澄清您的要求,并包括简明、可测试的示例输入和预期输出。

OP确实说过他无法创建临时文件。。。idk他这么说的原因或确切含义当然可以。@EdMorton我也不知道:-)也许
bash
可以创建临时文件和文件句柄,即使OP不能。
sed 's/bad//g' file | command -
$ cat file
1
2
3
4
5

$ sed 's/3//g' file | awk '{print FILENAME, $0}'
- 1
- 2
-
- 4
- 5