![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| поле для ввода | ruben.rodrigues | Shell программирование и сценарии | 2 | 01-28-2009 06:17 AM |
| MSG входного окна | ruben.rodrigues | UNIX для чайников Вопросы И Ответы | 0 | 01-28-2009 04:34 AM |
| Чтение конкретным содержанием с 1 входной файл и добавить его на другой входной файл | sksahu | Shell программирование и сценарии | 5 | 01-14-2009 06:09 AM |
| присвоить vales к arrary | koti_rama | Shell программирование и сценарии | 0 | 07-24-2007 03:43 AM |
| Как строки для ввода И ввод в одной строке | newbie168 | Shell программирование и сценарии | 2 | 09-27-2005 06:02 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
AWK помощь - от входного vales по efile к annother
Пожалуйста, см. прилагаемый файл испытание для лучшего разъяснения и форматирования файлов .... спасибо
foo1 Код:
H2600 LINE: H2600 H2600 H2600 MYSystems Ltd. (Feb 18 2009) V1760R1130 1 2213133522.79N 81 027.09E 500814.01502345.9 145 9 837 E1760R1130 1 2 2213133522.44N 81 027.33E 500821.11502335.1 145 9 837 Z1760R1130 11 2213133512.77N 81 031.86E 500957.51502038.3 145 9 837 Z1760R1130 12 2213133512.15N 81 030.27E 500909.81502019.1 145 9 837 R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01 R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41 R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51 R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51 V1760R1130 1 2214133523.56N 81 026.81E 500805.51502369.5 145 9 849 E1760R1130 1 2 2214133523.21N 81 027.04E 500812.61502358.7 145 9 849 Z1760R1130 11 2214133513.54N 81 031.57E 500948.61502061.8 145 9 849 Z1760R1130 12 2214133512.93N 81 029.98E 500900.81502042.9 145 9 849 R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01 R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41 R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51 R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51 V1760R1130 1 2392133740.94N 805939.69E 499389.81506589.83182.4145 94330 E1760R1130 1 2 2392133523.21N 81 027.04E 500812.61502358.7 145 9 849 Z1760R1130 11 2392133513.54N 81 031.57E 500948.61502061.8 145 9 849 Z1760R1130 12 2392133512.93N 81 029.98E 500900.81502042.9 145 9 849 foo2 Код:
key key 2213 3200 2214 3198 2392 3182 Я хотел бы прочитать foo1 и заменить колонку 65 до 70 с $ 2 foo2 если линия в foo1 начинается с V и колонок 65 до 70 являются пустыми и, если колонках 22 до 25 в матче foo1 $ 1 из foo2. Также этот файл foo2-видимому, не имеют какой-либо записи sepeator, и я хотел бы установить NR будет равна 80 символам. Так что мой выходной файл будет выглядеть так Код:
H2600 LINE: H2600 H2600 H2600 MYSystems Ltd. (Feb 18 2009) V1760R1130 1 2213133522.79N 81 027.09E 500814.01502345.93200 145 9 837 E1760R1130 1 2 2213133522.44N 81 027.33E 500821.11502335.1 145 9 837 Z1760R1130 11 2213133512.77N 81 031.86E 500957.51502038.3 145 9 837 Z1760R1130 12 2213133512.15N 81 030.27E 500909.81502019.1 145 9 837 R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01 R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41 R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51 R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51 V1760R1130 1 2214133523.56N 81 026.81E 500805.51502369.53198 145 9 849 E1760R1130 1 2 2214133523.21N 81 027.04E 500812.61502358.7 145 9 849 Z1760R1130 11 2214133513.54N 81 031.57E 500948.61502061.8 145 9 849 Z1760R1130 12 2214133512.93N 81 029.98E 500900.81502042.9 145 9 849 R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01 R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41 R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51 R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51 V1760R1130 1 2392133740.94N 805939.69E 499389.81506589.83182.4145 94330 E1760R1130 1 2 2392133523.21N 81 027.04E 500812.61502358.7 145 9 849 Z1760R1130 11 2392133513.54N 81 031.57E 500948.61502061.8 145 9 849 Z1760R1130 12 2392133512.93N 81 029.98E 500900.81502042.9 145 9 849 Последний раз редактировалось Franklin52; на 05-26-2009 08:30 AM.. Основание: нечитаемы, добавляя код тегов |
|
||||
|
Попробуйте это:
Код:
awk 'NR==FNR{a[$1]=$2;next}
/^V/ && substr($0,65,5)==" " && substr($0,22,4) in a {
print substr($0,1,64) a[substr($0,22,4)] substr($0,69);next
}
1' foo2 foo1
|
|
||||
|
Код:
my %hash=(
2213 => 3200,
2214 => 3198,
2392 => 3182,
);
while(<DATA>){
if(/^V/ && (substr($_,64,6)=~/\s{6}/)){
substr($_,64,4)=$hash{substr($_,21,4)};
}
print;
}
__DATA__
H2600 LINE:
H2600
H2600
H2600 MYSystems Ltd. (Feb 18 2009)
V1760R1130 1 2213133522.79N 81 027.09E 500814.01502345.9 145 9 837
E1760R1130 1 2 2213133522.44N 81 027.33E 500821.11502335.1 145 9 837
Z1760R1130 11 2213133512.77N 81 031.86E 500957.51502038.3 145 9 837
Z1760R1130 12 2213133512.15N 81 030.27E 500909.81502019.1 145 9 837
R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01
R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41
R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51
R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51
V1760R1130 1 2214133523.56N 81 026.81E 500805.51502369.5 145 9 849
E1760R1130 1 2 2214133523.21N 81 027.04E 500812.61502358.7 145 9 849
Z1760R1130 11 2214133513.54N 81 031.57E 500948.61502061.8 145 9 849
Z1760R1130 12 2214133512.93N 81 029.98E 500900.81502042.9 145 9 849
R 1 501299.31502012.1 6.7 2 501303.51502000.2 6.8 3 501307.71501988.4 7.01
R 4 501311.91501976.6 7.1 5 501316.21501964.7 7.3 6 501320.41501952.9 7.41
R 7 501324.61501941.2 7.5 8 501328.91501929.3 7.5 9 501333.21501917.5 7.51
R 10 501337.41501905.7 7.5 11 501341.71501893.9 7.5 12 501346.01501882.1 7.51
V1760R1130 1 2392133740.94N 805939.69E 499389.81506589.83182.4145 94330
E1760R1130 1 2 2392133523.21N 81 027.04E 500812.61502358.7 145 9 849
Z1760R1130 11 2392133513.54N 81 031.57E 500948.61502061.8 145 9 849
Z1760R1130 12 2392133512.93N 81 029.98E 500900.81502042.9 145 9 849
|
|
||||
|
изменения
Что я имею в виду сказать, что foo2 не имеет каких-либо записей Seperator.
AWK '(печати NR)' foo1 Возвращает ответ на 1 В прилагаемом файле является распечатка на экран, используя команду раза. |
|
||||
|
Какой формат foo2 без использования раз команда?
|
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|