2012-07-06 51 views
1

我一直在嘗試,看着各種命令,但似乎無法找到正確的語法;將兩個ls命令的輸出除以a; (分號)

我想結合兩個ls命令的輸出除以;(分號)並將輸出寫入文件。

我的LS命令:

ls *.lst 
ls -d -1 $PWD/*.lst 

它應該是這樣的:(?> files.dat

filename1.lst; /tmp/filename1.lst 

和輸出線應加入一個文本文件名爲files.dat

+0

是否要附加'>>'或覆蓋'>'到files.dat? – 2012-11-30 08:27:31

回答

0

如果我理解正確,你可以試試

echo "$(command1); $(command2)" 
+0

它有點類似,但我真的需要它做文件名.lst; /tmp/filename1.lst所以兩個ls輸出行每行分隔; – EdgarL 2012-07-06 12:52:33

0

嘗試這種情況:

find $(pwd) -name '*.lst' -printf '%f; %p\n' >>files.dat 

添加(附加)到files.dat。

+0

這一個產生一個錯誤(發現:-printf:未知選項)或者我做錯了什麼? – EdgarL 2012-07-06 13:06:38

+0

您的平臺的查找不執行-printf運算符 – fork0 2012-07-06 13:12:49

+0

我在macosx(sh&bash)上測試它,但它需要在redhat linux上運行 – EdgarL 2012-07-06 13:16:25

0

你所要求的可以通過paste完成。

FILE1="$(mktemp)" 
ls *.lst > $FILE1 
ls -d -1 *.lst | paste -d ";" $FILE1 - >> files.dat 

BTW $PWD是當前目錄,以便$PWD/something是相同的寫作只是something