小编Ben*_*ngt的帖子

如何在 EOF 处删除多个换行符?

我有以一个或多个换行符结尾的文件,并且应该只以一个换行符结尾。我如何使用 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)

澄清:当然,管道是允许的,如果这样更优雅的话。

bash sed awk ed

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

如何在 Linux 上设置 SSH 以无密码登录?

我的 Raspberry Pi 正在运行默认的 Debian 映像并启用了 SSH。我登录到我的 Pi 如下:

ssh pi@<IP-address-of-my-Pi>
Run Code Online (Sandbox Code Playgroud)

我每次都必须输入密码。我可以以某种方式让我的 Pi 接受来自我本地机器的登录吗?我正在运行 Fedora Linux。

ssh authentication

7
推荐指数
1
解决办法
7596
查看次数

如何根据显示器的枢轴位置自动更改方向?

我有一个用于纵向模式编程的显示器。为了观看视频,我每天多次将其切换到横向模式。物理转换很快,但我每次都必须深入研究显示器配置以调整方向/分辨率。有没有办法在 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)

所以问题归结为检测显示器的方向变化。

xorg xrandr monitors amd

5
推荐指数
1
解决办法
3235
查看次数

标签 统计

amd ×1

authentication ×1

awk ×1

bash ×1

ed ×1

monitors ×1

sed ×1

ssh ×1

xorg ×1

xrandr ×1