我有以一个或多个换行符结尾的文件,并且应该只以一个换行符结尾。我如何使用 Bash/Unix/GNU 工具做到这一点?
坏文件示例:
1\n
\n
2\n
\n
\n
3\n
\n
\n
\n
Run Code Online (Sandbox Code Playgroud)
示例更正文件:
1\n
\n
2\n
\n
\n
3\n
Run Code Online (Sandbox Code Playgroud)
换句话说:在 EOF 和文件的最后一个非换行符之间应该只有一个换行符。
读取文件内容,切掉一个换行符,直到最后没有另外两个换行符,写回:
#! /bin/python
import sys
with open(sys.argv[1]) as infile:
lines = infile.read()
while lines.endswith("\n\n"):
lines = lines[:-1]
with open(sys.argv[2], 'w') as outfile:
for line in lines:
outfile.write(line)
Run Code Online (Sandbox Code Playgroud)
澄清:当然,管道是允许的,如果这样更优雅的话。
我的 Raspberry Pi 正在运行默认的 Debian 映像并启用了 SSH。我登录到我的 Pi 如下:
ssh pi@<IP-address-of-my-Pi>
Run Code Online (Sandbox Code Playgroud)
我每次都必须输入密码。我可以以某种方式让我的 Pi 接受来自我本地机器的登录吗?我正在运行 Fedora Linux。
我有一个用于纵向模式编程的显示器。为了观看视频,我每天多次将其切换到横向模式。物理转换很快,但我每次都必须深入研究显示器配置以调整方向/分辨率。有没有办法在 Linux 下自动执行此操作?有问题的显示器是BenQ BL2410PT,它在随附的软件中具有自动旋转功能,我使用的是 AMD 显卡。
我可以将旋转更改为纵向模式
$ xrandr --output DVI-1 --rotation left
Run Code Online (Sandbox Code Playgroud)
并返回横向模式
$ xrandr --output DVI-1 --rotation normal
Run Code Online (Sandbox Code Playgroud)
所以问题归结为检测显示器的方向变化。