我已经使用sed
了一段时间了,但是这是我遇到的一个怪癖,我无法解决。
让我用实际情况解释我的问题。
场景#1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
在第一个命令中,我将printf
输出传递到,xclip
以便将其复制到剪贴板。现在,printf
不同于echo
默认情况下不会在末尾插入新行。因此,如果我将此内容粘贴到终端中,ls
则复制的命令不会自动运行。
在第二行中,末尾有一个新行,因此粘贴剪贴板内容也会导致命令在剪贴板中运行。
这对我来说是不可取的。因此,我想使用来删除换行符sed
,但失败了,如下图所示。
场景#2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
剪贴板中的内容仍然包含换行符。当我将其粘贴到终端时,该命令将自动运行。
我还尝试删除回车符\r
。但是娜达 似乎我在这里错过了非常关键/基本的东西。
generate-text | xclip
情况下通常是不希望的。此答案仅删除最后一个换行符。