如何將多行文件名鏈接到一個自定義分隔符?

我想將ls -1的結果加入到一行中,並用我想要的任何內容劃分它。 函數

我能夠使用任何標準的Linux命令來實現這一目標嗎? spa


#1樓

ls鏈接到管道時產生一個列輸出,所以-1是多餘的。 命令行

這是使用內置join函數的另外一個perl答案,它不會留下尾隨分隔符: code

ls | perl -F'\n' -0777 -anE 'say join ",", @F'

隱藏的-0777使perl在運行程序以前讀取全部輸入。 ci

sed替代品,不留下尾隨分隔符 字符串

ls | sed '$!s/$/,/' | tr -d '\n'

#2樓

我以爲這個很棒 awk

ls -1 | awk 'ORS=","'

ORS是「輸出記錄分隔符」,因此如今你的行將用逗號鏈接。 sed


#3樓

此命令適用於PERL粉絲: perl

ls -1 | perl -l40pe0

這裏40是空間的八進制ascii代碼。 程序

-p將逐行處理並打印

-l將負責用咱們提供的ascii字符替換尾部\\ n。

-e是告知PERL咱們正在執行命令行。

0表示實際上沒有執行命令。

perl -e0與perl -e'相同


#4樓

不要從新發明輪子。

ls -m

它正是如此。


#5樓

ls有選項-m", "逗號和空格分隔輸出。

ls -m | tr -d ' ' | tr ',' ';'

將此結果傳遞給tr以刪除空格或逗號將容許您再次將結果傳遞給tr以替換分隔符。

在個人例子我更換分隔符,用分隔符;

替換; 使用您喜歡的任何一個字符分隔符 ,由於tr只會考慮您做爲參數傳入的字符串中的第一個字符。

相關文章
相關標籤/搜索