採取例如:如何從杜-h輸出的末尾刪除文件名
$ du -h file_size.txt
112K file_size.txt
我怎麼會從輸出中刪除的文件名杜-h
我曾嘗試使用sed的搜索字符串(文件名),並沒有取代它,但它未工作(以下命令)
du -h file_size.txt | sed 's/ 'file_size.txt'//'
可能有人請指出爲什麼這不會工作,或者更好的方式來做到這一點?
問候
保羅
採取例如:如何從杜-h輸出的末尾刪除文件名
$ du -h file_size.txt
112K file_size.txt
我怎麼會從輸出中刪除的文件名杜-h
我曾嘗試使用sed的搜索字符串(文件名),並沒有取代它,但它未工作(以下命令)
du -h file_size.txt | sed 's/ 'file_size.txt'//'
可能有人請指出爲什麼這不會工作,或者更好的方式來做到這一點?
問候
保羅
你必須在命令行中一些不好的報價。最簡單的大概是:
du -h file_size.txt | cut -f -1
要解決你的命令行:
du -h file_size.txt | sed 's/file_size.txt//'
由於您的文章有一個awk
標籤:
du -h file_size.txt | awk '{ print $1 }'
簡單輸出的第一列。這裏是awk的解決方案
du -h test.txt | awk '{ print $1 }'
+++ 1 :-) aus .at – Flavius 2010-02-11 20:34:50
這是一個有點冗長,但在任何情況下,這是另一種你想要什麼:
du -h file_size.txt |while read x junk; do echo $x; done
@OP如果你的數據有不同的領域,例如空格/製表符,那麼它更容易使用的工具,如awk/cut,通過分隔符將它們分割到這些字段上。使用正則表達式(例如sed)是沒有必要的。更好的是使用shell。
各種方式
$ du -h file | awk '{print $1}'
4.0K
$ du -h file | cut -f1
4.0K
$ set -- $(du -h file) #using shell only
$ echo $1
4.0K
你原來的命令將除了要包括在sed的正則表達式的空間都工作過,杜輸出選項卡。
du -h
的輸出是[tab]分隔的。
du -h file_size.txt |sed 's/[\t].*//g'
或'du -h file_size.txt | sed's/\ s +。* //'' – Tomalak 2010-02-11 19:37:48
@Tomalak對於使用'sed'有正確的想法 - 確保輸入文件名兩次。 – 2010-02-11 19:39:14
Woops,這是我之前剩下的一個$ VARIABLE的單引號。感謝您一如既往的幫助 – paultop6 2010-02-11 19:50:11