|
|
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
Есть файл следующего содержания: param1=value1 param2=value2 ... paramN=valueN Вопрос следующий, как с помощью грепа по названию параметра выдернуть его значение? проблем в том, что греп работает в двух режимах: 1) Либо выводит всю строку, которая удовлетворяет регулярному выражению 2) Либо выводит только ту часть строки,которая удовлетворяет регулярному выражению Оба варианта очевидно не подходят, как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 08:12:39 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
man sed ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 08:38:01 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
Бутылка пива в Новосибирске ждет того, кто приведет конкретный пример команды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 08:47:48 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. это с отбросом пробелов и табуляций слева и справа в названии параметра ( вдруг ... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 09:21:39 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
Открываем конкурс. Главный приз бутылка пива в Новосибирске Если использовать sed: getparam.sh Код: plaintext 1. 2. 3. 4. 5. 6. Использовать ./getparam.sh paramname < file ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 09:24:28 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
sanek842 Код: plaintext 1. это с отбросом пробелов и табуляций слева и справа в названии параметра ( вдруг ... ) кажется ошибка, $2 не определяется имхо, так правильно awk -F= ' { gsub(/^[ \t]*/,"",$1);gsub(/[ \t]*$/,"",$2); if ( $1=="param2" ) print $2 }' file.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 09:35:08 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
:)) С использованием grep: cat file.txt | grep param1 | awk -F= '{print$2}' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 09:40:59 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
Anton Lukyanov sanek842 Код: plaintext 1. это с отбросом пробелов и табуляций слева и справа в названии параметра ( вдруг ... ) кажется ошибка, $2 не определяется имхо, так правильно awk -F= ' { gsub(/^[ \t]*/,"",$1);gsub(/[ \t]*$/,"",$2); if ( $1=="param2" ) print $2 }' file.txt зачем, нам нужно вычленить только название параметра ( это то что до равно ), поставьте перед равно пробел и исправленный пример работать не будет А в принципе можно даже проще сделать, обычно название параметра не включает в себя пробелы и имеет смысл наверное целиком исключить пробелы в "1-ой колонке", тогда будет так awk -F= ' { gsub(/[ \t]/,"",$1); if ( $1=="param2" ) print $2 }' file.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 09:44:45 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
Sun_newbie:)) С использованием grep: cat file.txt | grep param1 | awk -F= '{print$2}' А если файл содержит строки pparam1 =100 param12 = 1000 param1= 10 ? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 10:16:15 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
cooluser wrote: > как быть? используйте sed. Должно быть нечто вроде sed -n 's/^param1=\(.*\)$/\1/p' исходный_файл. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 13:28:58 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
cooluser wrote: > Бутылка пива в Новосибирске ждет того, кто приведет конкретный пример > команды 1) далеко. 2) не люблю пиво. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 13:29:25 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
А если файл содержит строки pparam1 =100 param12 = 1000 param1= 10 Точнее составить регулярное выражение с названием нужного параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2007, 22:10:10 |
|
||
|
Примитивный вопрос по GREP
|
|||
|---|---|---|---|
|
#18+
cat file.txt | grep "^paramname=" | cut -f 2- -d = ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2007, 11:27:53 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=34678898&tid=1487945]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 278ms |

| 0 / 0 |
