2013-03-20 179 views
1

我想從標準輸入讀取,刪除所有'/',並將輸出寫入標準輸出。因此,文件包含:使用sed的shell腳本

/ab1/1a6/ 17 
/a/b/1 

將輸出:

ab11a6 17 
ab1 

我想應該是這樣的:

read input 
sed -r 's/\/[^\/]*\/[^\/]*\/.*/"I not sure what do I need to put in here"/g' 
echo $input 

我真的不知道我該怎麼需要放置「替換」部分。任何建議?

回答

3
sed 's./..g' 

這將刪除每一行中的所有字符/,所以你不需要更換部分。您可以使用/作爲分隔符,並逃避它在文本:s/\///g或選擇不同的標點符號作爲分隔符:s./..g

所以,如果你想轉換的輸出一個名爲input.txt文件,並寫入output.txt

sed 's./..g' input.txt > output.txt 
# or 
sed 's./..g' <input.txt> output.txt 
1

沒什麼......如下圖所示:

% echo "/ab1/1a6/ 17" | sed 's/\///g' 
ab11a6 17 
2

做你問什麼,最簡單的方案是:

tr -d '/' 

如果您輸入,你會得到你想要的輸出 - 無/字符你不需要一個readecho聲明

的sed的行爲同其他人已經表明,TR &使用sed從標準輸入讀取和寫入默認到stdout:

sed 's/\///g' 
+0

OP特別要求'sed' – hd1 2013-03-20 04:17:53