2013-05-13 5 views
2

Файл: /etc/newsyslog.confBash + Заменить строку/значение в колонке

Я пытаюсь заменить 3-й столбец (счетчик столбцов) каждой строки. Кажется, что первый и второй столбцы разделены вкладками. Однако второй и третий столбцы разделены пробелами.

я могу получить значение третьего столбца для каждой строки, с помощью:

grep /var /etc/newsyslog.conf | cut -d ' ' -f 3 

Однако я с настройкой/заменяющее значение в третьем столбце проблему. Проблема в том, что я не знаю, какова будет ценность третьего столбца для любой данной строки. Это затрудняет, используя любой метод, который я знаю, для поиска/замены указанного (третьего столбца) значения/строки.

Спасибо за любую помощь или совет, которые вы можете предложить.

Редактировать: Я должен был упомянуть, что это система Mac OS 10.6.

ответ

2

Лучше использовать AWK здесь, чтобы избежать нескольких команд:

awk '/\/var/{print $3}' 

EDIT:

awk 'BEGIN{OFS="\t"} /\/var/{$3="14"}1' /etc/newsyslog.conf > temp 
mv temp /etc/newsyslog.conf 
+0

Третий столбец представляет собой число. Независимо от того, что это сейчас, я хочу, чтобы это было 14. – Taelo

+1

В этом случае 'awk '/ \/var/{$ 3 = 14} 1''. –

+0

@Taelo: сейчас проверьте правку. – anubhava

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