2015-11-04 2 views
1

У меня есть файл нижеКак форматировать пространства в UNIX

ABCD|12345|N|YES 
ABCDEFGH|12344444|NO|YES 
AB|12|N|Y 

Я хочу, чтобы на выходе, как показано ниже

ABCD    12345  N YES 
ABCDEFGH   123444444 NO YES 
AB     12   N Y 

В основном нужно форматировать это в хорошем удобном для чтения формате. Как таблица. (Здесь пространства не совсем подходит, как я хочу)

ответ

0

Попробуйте что-то вроде:

echo "ABCD|12345|N|YES ABCDEFGH|12344444|NO|YES AB|12|N|Y" | sed 's/|/ /g' 

Это SED будет искать «|» и будет заменяться пространством по всей линии. Или вы можете использовать команду tr как:

echo "ABCD|12345|N|YES ABCDEFGH|12344444|NO|YES AB|12|N|Y" | tr '|' ' ' 

перевести с трубы "|" в космос.

+0

Да sed и tr могут изменять трубку .. но им не доставать ее в правильном формате, так как мне нужен –

1

Вы можете использовать tr и column -t:

tr '|' '\t' < file | column -t 
ABCD  12345  N YES 
ABCDEFGH 12344444 NO YES 
AB  12  N Y 

tr должен заменить | ушком и column -t для получения табличного форматированного вывода.

+0

столбец не работает .. :(ERROR :: ksh: column: not found. –

+0

Какая ОС вы рудите ? 'column' является стандартной утилитой unix. – anubhava

+0

benappl: BRPA $ uname -a AIX Есть ли какой-либо другой способ, я могу это сделать? Было бы очень полезно –

Смежные вопросы