相关疑难解决方法(0)

sort 是否支持就地对文件进行排序,例如 `sed --in-place`?

我是盲人还是没有类似的--in-place选择sort

为了将结果保存到输入文件,sed 使用-i( --in-place)。

将输出重定向sort到输入文件

sort < f > f
Run Code Online (Sandbox Code Playgroud)

导致它为空。如果没有--in-place选择 - 也许有一些技巧可以方便地做到这一点?

(我唯一想到的是:

sort < f > /tmp/f$$ ; cat /tmp/f$$ > f ; rm /tmp/f$$
Run Code Online (Sandbox Code Playgroud)

移动不是正确的选择,因为可能会更改文件权限。这就是为什么我用临时文件的内容覆盖,然后将其删除。)

text-processing sort

108
推荐指数
4
解决办法
4万
查看次数

bash 可以写入自己的输入流吗?

是否可以在交互式bash shell 中输入输出一些文本的命令,以便它出现在下一个命令提示符下,就好像用户在该提示符下输入了该文本一样?

我希望能够创建source一个脚本,该脚本将生成一个命令行并输出它,以便在脚本结束后提示返回时出现该脚本,以便用户可以在按下enter执行它之前选择对其进行编辑。

这可以通过xdotool但仅当终端在 X 窗口中并且安装时才有效。

[me@mybox] 100 $ xdotool type "ls -l"
[me@mybox] 101 $ ls -l  <--- cursor appears here!
Run Code Online (Sandbox Code Playgroud)

这可以仅使用 bash 来完成吗?

bash

48
推荐指数
4
解决办法
9833
查看次数

在管道到另一个命令之前完全缓冲命令输出?

有没有办法只在没有临时文件的情况下执行另一个命令?我有一个运行时间更长的命令和另一个用于格式化输出并使用 curl 将其发送到 HTTP 服务器的命令。如果我只是执行commandA | commandBcommandB将启动curl,连接到服务器并开始发送数据。因为commandA时间太长,HTTP 服务器会超时。我可以随心所欲commandA > /tmp/file && commandB </tmp/file && rm -f /tmp/file

出于好奇,我想知道是否有办法在没有临时文件的情况下做到这一点。我试过了,mbuffer -m 20M -q -P 100但卷曲过程仍然从一开始就开始了。Mbuffer 等待直到commandA实际发送数据完成。(数据本身最多只有几百 kb)

shell pipe buffer

16
推荐指数
2
解决办法
9885
查看次数

为什么重定向输出有时会产生一个空文件?

shell 管道的威力如此之大,有时让我失望。

例子

只是作为一个例子,管道

echo abc > file.txt
cat file.txt | sed 's/a/1/' > file.txt
Run Code Online (Sandbox Code Playgroud)

给我一个空的file.txt。意识到 shell 可能>首先调用,我做了一个改变:

echo abc > file.txt
{cat file.txt | sed 's/a/1/'} > file.txt
Run Code Online (Sandbox Code Playgroud)

另一个空文件再次让我感到惊讶file.txt。一种最终有效的丑陋方式是

echo abc > file.txt
echo $(cat file.txt | sed 's/a/1') > file.txt
Run Code Online (Sandbox Code Playgroud)

这会强制 shell 首先运行子 shell,然后重定向。

虽然我知道更好的实践sed,它可以让你摆脱echo, cat, grep.. 等,但我在这里很好奇的是完全学习 shell 的语法。这个问题不是关于如何解决上面的特定问题。

Q1(编辑:题外话)有没有好的资源可以让我学习语法?

恐怕不同的外壳可能有不同的语法,所以

Q2我可以使 shell 变得冗长,并且每次运行命令时都能清楚地看到它在做什么吗?

Q3(编辑:题外话)关于良好实践的任何其他建议?谢谢!

shell pipe io-redirection

4
推荐指数
2
解决办法
2197
查看次数

标签 统计

pipe ×2

shell ×2

bash ×1

buffer ×1

io-redirection ×1

sort ×1

text-processing ×1