如何将单列输出连接到列表中?

Mic*_*ant 3 ls grep columns

我正在使用:

ls /proc | grep -v "^[0-9].*"
Run Code Online (Sandbox Code Playgroud)

获取 /proc 中所有不以数字开头的文件和目录的列表。输出是一个单列列表,即:

acpi
asound
buddyinfo
bus
Run Code Online (Sandbox Code Playgroud)

我怎样才能使它成为一个多列或项目列表,即:

acpi asound buddyinfo bus
Run Code Online (Sandbox Code Playgroud)

或者

acpi,asound,buddyinfo,bus
Run Code Online (Sandbox Code Playgroud)

我试过:

$ ls /proc | grep -v "^[0-9].*" | column -c5
Run Code Online (Sandbox Code Playgroud)

但仍然有 1 列。

Jos*_* R. 5

使用xargs

$ command ls /proc | grep -v "^[0-9].*" | xargs
Run Code Online (Sandbox Code Playgroud)

command部分是必要的,因为如果您ls的别名ls --color为例如,它会在其输出中添加非打印转义序列,grep以某种方式搜索并产生不良结果。


其他选项

如果你不介意你的PWD改变:

$ cd /proc && echo [^0-9]*
Run Code Online (Sandbox Code Playgroud)

如果你不想改变你的PWD

$ pushd . &>/dev/null && cd /proc && echo [^0-9]* && popd &>/dev/null
Run Code Online (Sandbox Code Playgroud)

或者:

$ echo /proc/[^0-9]* | sed 's!/proc/!!g'
Run Code Online (Sandbox Code Playgroud)