2016-12-14 1 views

ответ

1

Использование awk, что-то вроде

awk -F'|' 'BEGIN{OFS="|"}{NF=NF-2; print}' inputfile 
David|3456|ACCOUNT|MALFUNCTION 

(или) использовать cut, если вы знаете, число столбцов в общем, я , e 6 -> 4

cut -d'|' -f -4 inputfile 
David|3456|ACCOUNT|MALFUNCTION 
+0

не работает. Печать всего файла, как есть. есть ли что-нибудь, чего я здесь не хватает? как awk -F '|' «BEGIN {OFS = "|"} {NF = NF-2; print} '/home/user/file.txt – Satya

+0

Возможно, вы на машине под Windows под 'cygwin'? Какой Linux и какую версию awk вы используете? Можете ли вы вывести 'awk -version'? и 'which awk' – Inian

+0

@Satya: вы можете выполнить' dos2unix Inian

0

Команда Я хотел бы использовать это

cat input.txt | sed -r 's/(.*)\|.*/\1/' > output.txt 
+0

Вы хотите удалить 2 трубы. Не следует использовать '\ | [^ |] * \ | [\ |] * $'? –

2

Заменить |(string without pipe)|(string without pipe) в конце каждой строки:

sed 's/|[^|]*|[^|]*$//' inputfile 
Смежные вопросы