我有一个文件夹,当我ls
在其中执行时,它会输出
t-1-myFirstTest.c
myFile.c
t-42-my_second_test.c
t-3-test1234.c
.
.
.
mySecondFile.c
t-21-tset241.c
Run Code Online (Sandbox Code Playgroud)
我想删除此文本的所有内容,除了换行符和t-
第二个-
. 所以前一个的输出应该是
1
42
3
.
.
.
21
Run Code Online (Sandbox Code Playgroud)
我有一个解决方案,但我认为它真的很糟糕。如果我们所说的文件夹实际上在当前目录中,那么我使用
ls | grep -o -E t-[0-9]+-[a-zA-Z0-9_]+.c | grep -o -E t-[0-9]+ | grep -o -E [0-9]+
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来完成同样的事情?
我在一台 linux 机器上,我需要的是一个 sh 脚本/命令,以便能够从终端窗口中删除所有内容(甚至显示为 PS1 变量的内容)并删除滚动功能。
基本上我需要一个空白终端,您只能在其中看到程序的输出并且无法滚动。就像nano
命令所做的那样。
我尝试了各种方法,如clear
、reset
、tput reset
,echo -en \\ec
但所有这些方法(尽管清除了几乎所有内容)都使提示文本完好无损,这是我不想要的。我也不需要能够在终端中向上或向下滚动。
一个解决方案可能是打印一些相当于终端高度的换行符,但这样我就可以向上滚动并最终看到提示文本,因此结合禁用滚动/滚动条可能是一个解决方案,但是我不知道该怎么做,即便如此,我也不认为这是一个“干净”的解决方案。
谢谢。