2012-04-22 13 views
1

У меня небольшая проблема, код ниже работал нормально, но теперь он ничего не отображает, я не совсем понимаю, где ошибка для этого.Shell/AWK - Не отображается значение, и как добавить reg exp

> #! /bin/bash 

awk -F, '  FILENAME = $1 { FS = ":" } 

     { print $1 " " $2 " " $3 " " $4 } 





       ' 
  • Я хотел бы добавить некоторые опции, как: ./search thefile -C

я хочу, что р ех -С быть, как вариант и отображать некоторые конкретные вещи.

Любые идеи об этом?

Thankyou

ответ

0

Просто, чтобы вы начали. , ,

Если файл test.dat выглядит следующим образом

100:200:300:400 

Затем этот сценарий оболочки будет печататься каждый из этих значений.

#! /bin/bash 
awk 'BEGIN { FS = ":" } NF==4 && $0 ~/:/{ print FILENAME, $1 " " $2 " " $3 " " $4 }' $1 

Призовите сценарий оболочки «test.sh» с одним рассуждением, а

./test.sh 'test*.dat' 

Тестом NF>=4 убеждается есть, по крайней мере, четыре поля, прежде чем пытаться напечатать. Регулярное выражение $0~/:/ гарантирует, что линия имеет хотя бы один двоеточие. (Вероятно, есть лучший способ выразить то, что вы пытаетесь сделать.)

Переменная FILENAME указывает, в каком файле находится строка. Возможно, вы сможете удалить его после того, как вы уверены, что все работает так, как вы планировали.

+0

Привет, Как насчет функций, таких как thescript -C i, означает -C, как я могу это сделать? – user1253622

+0

@ user1253622: Что вы попробовали? –

0

Вы определенно не хотите делать:

FILENAME = $1 

вероятно Вы имели в виду

FILENAME == $1 

Помимо этого, сценарий не имеет смысла без какого-либо контекста, включая ввод образца и ожидаемый результат ,

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

  • Нет связанных вопросов^_^