2013-03-20 5 views
1

Я хочу читать со стандартного ввода, удалять все '/' и записывать вывод на стандартный вывод. Таким образом, файл, который содержит:shell scripting using sed

/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 '/' 

Если вы входите, что вы получите то, что вы хотите для вывода - нет/символы Вам не нужно read или echo заявление

СЭД будет вести себя так же, как и другие показали, тр & SED читать из стандартного ввода и записи в стандартный вывод по умолчанию: специально спросил

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

ОП для 'sed' – hd1