Код: Выделить всё
0.170
0.084
1.360
0.467
3.400
0.784
7.820
0.417
14.950
0.300
Хотелось бы получить:
Код: Выделить всё
0.170 0.084
1.360 0.467
3.400 0.784
7.820 0.417
14.950 0.300
туплю

Модераторы: /dev/random, Модераторы разделов
Код: Выделить всё
0.170
0.084
1.360
0.467
3.400
0.784
7.820
0.417
14.950
0.300
Код: Выделить всё
0.170 0.084
1.360 0.467
3.400 0.784
7.820 0.417
14.950 0.300
Код: Выделить всё
sed -n '/^\s*$/ba;H;$ba;b;:a;{x;s/^\n*//;s/\n/ /g;p}'
Код: Выделить всё
sed '/^$/d'
Код: Выделить всё
$ cat txt
0.170
0.084
1.360
0.467
3.400
0.784
7.820
0.417
14.950
0.300
$ cat txt |sed 'N;s/\n//'
0.170 0.084
1.360
0.467
3.400 0.784
7.820
0.417
14.950 0.300
1. Зачем обратно менять все пробелы на \n? :) Видимо, там должно быть 2 пробела.
И таки да, 's/ /\n/g', а не так, как ты написал.
Там и было два пробела. Забыл тег code и движок их заменил на один.watashiwa_daredeska писал(а): ↑24.06.2010 19:261. Зачем обратно менять все пробелы на \n?Видимо, там должно быть 2 пробела.
2. Так это ж sed весь файл в память засосет.
И таки да, 's/ /\n/g', а не так, как ты написал.
Да, я уже заметил, когда сам постил. Вторая поправка была про /g, иначе sed заменит только первое вхождение.
Да, спасибо. Тоже пропустил, как и code.watashiwa_daredeska писал(а): ↑24.06.2010 19:57Да, я уже заметил, когда сам постил. Вторая поправка была про /g, иначе sed заменит только первое вхождение.
Разве там есть пробелы в начале и в конце строк?
watashiwa_daredeska писал(а): ↑24.06.2010 19:10Код: Выделить всё
sed -n '/^\s*$/ba;H;$ba;b;:a;{x;s/^\n*//;s/\n/ /g;p}'
Код:
0.170 0.084 1.360 0.467 3.400 0.784 7.820 0.417 14.950 0.300
0.255 0.132 1.380 0.473 3.450 0.784 8.625 0.417 15.525 0.300
0.308 0.138 1.445 0.493 3.499 0.784 8.970 0.408 15.926 0.300
0.340 0.148 1.458 0.496 3.570 0.817 9.200 0.383 16.675 0.300
0.364 0.156 1.530 0.515 3.622 0.817 9.239 0.381 16.741 0.300
0.379 0.165 1.615 0.522 4.140 0.817 9.775 0.360 17.000 0.300
0.410 0.185 1.628 0.524 4.171 0.817 10.200 0.358 17.250 0.300
0.425 0.195 1.643 0.530 4.370 0.817 10.221 0.358 17.463 0.296
0.431 0.197 1.700 0.554 4.830 0.817 10.350 0.357 17.825 0.288
0.510 0.220 1.725 0.564 4.930 0.752 10.625 0.326 18.400 0.272
0.595 0.228 1.785 0.587 5.060 0.677 10.694 0.319 18.700 0.271
0.606 0.232 1.870 0.587 5.087 0.654 10.803 0.307 19.550 0.269
0.638 0.243 1.899 0.587 5.100 0.643 10.925 0.306 20.675 0.265
0.680 0.257 1.901 0.588 5.276 0.516 11.050 0.303 20.700 0.265
0.695 0.264 1.927 0.600 5.290 0.507 11.352 0.294 21.274 0.257
0.711 0.271 1.955 0.661 5.316 0.504 11.500 0.294 21.456 0.255
0.754 0.291 2.040 0.750 5.355 0.499 11.771 0.294 23.000 0.255
0.773 0.298 2.125 0.813 5.520 0.480 11.900 0.294 25.300 0.255
0.782 0.301 2.151 0.818 5.750 0.454 12.075 0.294 27.321 0.252
0.784 0.302 2.210 0.830 5.780 0.449 12.232 0.294 28.750 0.250
0.850 0.322 2.380 0.830 5.849 0.437 12.272 0.295 29.468 0.249
0.935 0.367 2.415 0.830 5.950 0.419 12.325 0.297 32.200 0.247
1.026 0.367 2.465 0.830 6.095 0.396 12.342 0.297 35.650 0.245
1.041 0.370 2.530 0.830 6.213 0.390 12.374 0.297 36.628 0.244
1.105 0.384 2.677 0.830 6.325 0.409 12.504 0.297 37.950 0.244
1.190 0.456 2.720 0.830 6.342 0.412 12.650 0.299
1.275 0.456 2.805 0.830 6.375 0.417 12.686 0.300
1.295 0.456 2.975 0.830 6.670 0.417 12.750 0.300
1.315 0.456 2.990 0.830 7.245 0.417 13.225 0.300
1.327 0.456 3.060 0.816 7.475 0.417 13.800 0.300
1.350 0.458 3.105 0.807 7.721 0.417 13.829 0.300
Код: Выделить всё
tr "\n" " " < qqq | sed "s/ /\n/" > www
Код:
0.170
0.084
1.360
0.467
3.400
0.784
7.820
0.417
14.950
0.300
0.255
0.132
1.380
0.473
3.450
0.784
8.625
0.417
15.525
0.300
0.308
0.138
1.445
0.493
3.499
0.784
8.970
0.408
15.926
0.300
0.340
0.148
1.458
0.496
3.570
0.817
9.200
0.383
16.675
0.300
0.364
0.156
1.530
0.515
3.622
0.817
9.239
0.381
16.741
0.300
0.379
0.165
1.615
0.522
4.140
0.817
9.775
0.360
17.000
0.300
0.410
0.185
1.628
0.524
4.171
0.817
10.200
0.358
17.250
0.300
0.425
0.195
1.643
0.530
4.370
0.817
10.221
0.358
17.463
0.296
0.431
0.197
1.700
0.554
4.830
0.817
10.350
0.357
17.825
0.288
0.510
0.220
1.725
0.564
4.930
0.752
10.625
0.326
18.400
0.272
0.595
0.228
1.785
0.587
5.060
0.677
10.694
0.319
18.700
0.271
0.606
0.232
1.870
0.587
5.087
0.654
10.803
0.307
19.550
0.269
0.638
0.243
1.899
0.587
5.100
0.643
10.925
0.306
20.675
0.265
0.680
0.257
1.901
0.588
5.276
0.516
11.050
0.303
20.700
0.265
0.695
0.264
1.927
0.600
5.290
0.507
11.352
0.294
21.274
0.257
0.711
0.271
1.955
0.661
5.316
0.504
11.500
0.294
21.456
0.255
0.754
0.291
2.040
0.750
5.355
0.499
11.771
0.294
23.000
0.255
0.773
0.298
2.125
0.813
5.520
0.480
11.900
0.294
25.300
0.255
0.782
0.301
2.151
0.818
5.750
0.454
12.075
0.294
27.321
0.252
0.784
0.302
2.210
0.830
5.780
0.449
12.232
0.294
28.750
0.250
0.850
0.322
2.380
0.830
5.849
0.437
12.272
0.295
29.468
0.249
0.935
0.367
2.415
0.830
5.950
0.419
12.325
0.297
32.200
0.247
1.026
0.367
2.465
0.830
6.095
0.396
12.342
0.297
35.650
0.245
1.041
0.370
2.530
0.830
6.213
0.390
12.374
0.297
36.628
0.244
1.105
0.384
2.677
0.830
6.325
0.409
12.504
0.297
37.950
0.244
1.190
0.456
2.720
0.830
6.342
0.412
12.650
0.299
1.275
0.456
2.805
0.830
6.375
0.417
12.686
0.300
1.295
0.456
2.975
0.830
6.670
0.417
12.750
0.300
1.315
0.456
2.990
0.830
7.245
0.417
13.225
0.300
1.327
0.456
3.060
0.816
7.475
0.417
13.800
0.300
1.350
0.458
3.105
0.807
7.721
0.417
13.829
0.300
uptime писал(а): ↑25.06.2010 12:42
так не работала. Мой вариант:
Код: Выделить всё
tr "\n" " " < qqq | sed "s/ /\n/" > www
Код: Выделить всё
sed "/^ /d;N;s/ \n//" qqq > www
Код:
0.170
0.084
1.360
0.467
3.400
0.784
7.820
0.417
14.950
0.300
0.255
0.132
1.380
0.473
3.450
0.784
8.625
0.417
15.525
0.300
0.308
0.138
1.445
0.493
3.499
0.784
8.970
0.408
15.926
0.300
0.340
0.148
1.458
0.496
3.570
0.817
9.200
0.383
16.675
0.300
0.364
0.156
1.530
0.515
3.622
0.817
9.239
0.381
16.741
0.300
0.379
0.165
1.615
0.522
4.140
0.817
9.775
0.360
17.000
0.300
0.410
0.185
1.628
0.524
4.171
0.817
10.200
0.358
17.250
0.300
0.425
0.195
1.643
0.530
4.370
0.817
10.221
0.358
17.463
0.296
0.431
0.197
1.700
0.554
4.830
0.817
10.350
0.357
17.825
0.288
0.510
0.220
1.725
0.564
4.930
0.752
10.625
0.326
18.400
0.272
0.595
0.228
1.785
0.587
5.060
0.677
10.694
0.319
18.700
0.271
0.606
0.232
1.870
0.587
5.087
0.654
10.803
0.307
19.550
0.269
0.638
0.243
1.899
0.587
5.100
0.643
10.925
0.306
20.675
0.265
0.680
0.257
1.901
0.588
5.276
0.516
11.050
0.303
20.700
0.265
0.695
0.264
1.927
0.600
5.290
0.507
11.352
0.294
21.274
0.257
0.711
0.271
1.955
0.661
5.316
0.504
11.500
0.294
21.456
0.255
0.754
0.291
2.040
0.750
5.355
0.499
11.771
0.294
23.000
0.255
0.773
0.298
2.125
0.813
5.520
0.480
11.900
0.294
25.300
0.255
0.782
0.301
2.151
0.818
5.750
0.454
12.075
0.294
27.321
0.252
0.784
0.302
2.210
0.830
5.780
0.449
12.232
0.294
28.750
0.250
0.850
0.322
2.380
0.830
5.849
0.437
12.272
0.295
29.468
0.249
0.935
0.367
2.415
0.830
5.950
0.419
12.325
0.297
32.200
0.247
1.026
0.367
2.465
0.830
6.095
0.396
12.342
0.297
35.650
0.245
1.041
0.370
2.530
0.830
6.213
0.390
12.374
0.297
36.628
0.244
1.105
0.384
2.677
0.830
6.325
0.409
12.504
0.297
37.950
0.244
1.190
0.456
2.720
0.830
6.342
0.412
12.650
0.299
1.275
0.456
2.805
0.830
6.375
0.417
12.686
0.300
1.295
0.456
2.975
0.830
6.670
0.417
12.750
0.300
1.315
0.456
2.990
0.830
7.245
0.417
13.225
0.300
1.327
0.456
3.060
0.816
7.475
0.417
13.800
0.300
1.350
0.458
3.105
0.807
7.721
0.417
13.829
0.300
Более того: мы с wd уже обсуждали как мой недосмотр, так и правильный вариант — не только с двойным пробелом, но и с g:/dev/random писал(а): ↑25.06.2010 12:46В варианте t.t между / и / _два_ пробела, просто движок отображает один. Вы, видимо, скопипастили с одним. Поэтому у вас и не работает.uptime писал(а): ↑25.06.2010 12:42так не работала. Мой вариант:
Код: Выделить всё
tr "\n" " " < qqq | sed "s/ /\n/" > www
Код: Выделить всё
tr '\n' ' ' | sed 's/ /\n/g'
Загрузите кусок файла в виде приложения (attachment), а то такое чувство, что там куча каких-то странных невидимых символов.
Shell
$ sed -n 'l' in.txt
0.170 $
0.084 $
$
1.360 $
0.467 $
$
3.400 $
0.784 $
$
7.820 $
0.417 $
$
14.950 $
0.300$
$ sed -n '/^\s*$/ba;H;$ba;b;:a;{x;s/^\n*//;s/\n/ /g;p}' in.txt
0.170 0.084
1.360 0.467
3.400 0.784
7.820 0.417
14.950 0.300
Shell
$ sed -n 's/\s*$//;/^$/ba;H;$ba;b;:a;{x;s/^\n*//;s/\n/ /g;p}' in.txt
0.170 0.084
1.360 0.467
3.400 0.784
7.820 0.417
14.950 0.300
t.t писал(а): ↑25.06.2010 13:20Более того: мы с wd уже обсуждали как мой недосмотр, так и правильный вариант — не только с двойным пробелом, но и с g:/dev/random писал(а): ↑25.06.2010 12:46В варианте t.t между / и / _два_ пробела, просто движок отображает один. Вы, видимо, скопипастили с одним. Поэтому у вас и не работает.uptime писал(а): ↑25.06.2010 12:42так не работала. Мой вариант:
Код: Выделить всё
tr "\n" " " < qqq | sed "s/ /\n/" > www
Код: Выделить всё
tr '\n' ' ' | sed 's/ /\n/g'
Код: Выделить всё
tr "\r\n" " " < qqq > eee
sed "s/ /\n/g" eee > www
Код:
0.170 0.084 1.360 0.467 3.400 0.784 7.820 0.417 14.950 0.300 0.255 0.132 1.380 0.473 3.450 0.784 8.625 0.417 15.525 0.300 0.308 0.138 1.445 0.493 3.499 0.784 8.970 0.408 15.926 0.300 0.340 0.148 1.458 0.496 3.570 0.817 9.200 0.383 16.675 0.300 0.364 0.156 1.530 0.515 3.622 0.817 9.239 0.381 16.741 0.300 0.379 0.165 1.615 0.522 4.140 0.817 9.775 0.360 17.000 0.300 0.410 0.185 1.628 0.524 4.171 0.817 10.200 0.358 17.250 0.300 0.425 0.195 1.643 0.530 4.370 0.817 10.221 0.358 17.463 0.296 0.431 0.197 1.700 0.554 4.830 0.817 10.350 0.357 17.825 0.288 0.510 0.220 1.725 0.564 4.930 0.752 10.625 0.326 18.400 0.272 0.595 0.228 1.785 0.587 5.060 0.677 10.694 0.319 18.700 0.271 0.606 0.232 1.870 0.587 5.087 0.654 10.803 0.307 19.550 0.269 0.638 0.243 1.899 0.587 5.100 0.643 10.925 0.306 20.675 0.265 0.680 0.257 1.901 0.588 5.276 0.516 11.050 0.303 20.700 0.265 0.695 0.264 1.927 0.600 5.290 0.507 11.352 0.294 21.274 0.257 0.711 0.271 1.955 0.661 5.316 0.504 11.500 0.294 21.456 0.255 0.754 0.291 2.040 0.750 5.355 0.499 11.771 0.294 23.000 0.255 0.773 0.298 2.125 0.813 5.520 0.480 11.900 0.294 25.300 0.255 0.782 0.301 2.151 0.818 5.750 0.454 12.075 0.294 27.321 0.252 0.784 0.302 2.210 0.830 5.780 0.449 12.232 0.294 28.750 0.250 0.850 0.322 2.380 0.830 5.849 0.437 12.272 0.295 29.468 0.249 0.935 0.367 2.415 0.830 5.950 0.419 12.325 0.297 32.200 0.247 1.026 0.367 2.465 0.830 6.095 0.396 12.342 0.297 35.650 0.245 1.041 0.370 2.530 0.830 6.213 0.390 12.374 0.297 36.628 0.244 1.105 0.384 2.677 0.830 6.325 0.409 12.504 0.297 37.950 0.244 1.190 0.456 2.720 0.830 6.342 0.412 12.650 0.299
1.275 0.456 2.805 0.830 6.375 0.417 12.686 0.300
1.295 0.456 2.975 0.830 6.670 0.417 12.750 0.300
1.315 0.456 2.990 0.830 7.245 0.417 13.225 0.300
1.327 0.456 3.060 0.816 7.475 0.417 13.800 0.300
1.350 0.458 3.105 0.807 7.721 0.417 13.829 0.300
Код: Выделить всё
'while' is not recognized as an internal or external command,
operable program or batch file.
uptime писал(а): ↑25.06.2010 16:02Код: Выделить всё
'while' is not recognized as an internal or external command, operable program or batch file.
/dev/random писал(а): ↑25.06.2010 16:06uptime писал(а): ↑25.06.2010 16:02Код: Выделить всё
'while' is not recognized as an internal or external command, operable program or batch file.
UnxUtils содержит sh.exe, в нём что, тоже нет while?
Nazyvaemykh писал(а): ↑25.06.2010 17:41Ну, вот поправленный немного вариант чисто с sed (пробовал только в GNU\Linux окружении, с приведенным примером работает правильно):
sed '/^[^0-9]/d;N;s/\r\n/ /;s/\t//g'
Код:
0.170
0.084
1.360
0.467
3.400
0.784
7.820
0.417
14.950
0.300
0.255
0.132
1.380
0.473
3.450
0.784
8.625
0.417
15.525
0.300
0.308
0.138
1.445
0.493
3.499
0.784
8.970
0.408
15.926
0.300
0.340
0.148
1.458
0.496
3.570
0.817
9.200
0.383
16.675
0.300
0.364
0.156
1.530
0.515
3.622
0.817
9.239
0.381
16.741
0.300
0.379
0.165
1.615
0.522
4.140
0.817
9.775
0.360
17.000
0.300
0.410
0.185
1.628
0.524
4.171
0.817
10.200
0.358
17.250
0.300
0.425
0.195
1.643
0.530
4.370
0.817
10.221
0.358
17.463
0.296
0.431
0.197
1.700
0.554
4.830
0.817
10.350
0.357
17.825
0.288
0.510
0.220
1.725
0.564
4.930
0.752
10.625
0.326
18.400
0.272
0.595
0.228
1.785
0.587
5.060
0.677
10.694
0.319
18.700
0.271
0.606
0.232
1.870
0.587
5.087
0.654
10.803
0.307
19.550
0.269
0.638
0.243
1.899
0.587
5.100
0.643
10.925
0.306
20.675
0.265
0.680
0.257
1.901
0.588
5.276
0.516
11.050
0.303
20.700
0.265
0.695
0.264
1.927
0.600
5.290
0.507
11.352
0.294
21.274
0.257
0.711
0.271
1.955
0.661
5.316
0.504
11.500
0.294
21.456
0.255
0.754
0.291
2.040
0.750
5.355
0.499
11.771
0.294
23.000
0.255
0.773
0.298
2.125
0.813
5.520
0.480
11.900
0.294
25.300
0.255
0.782
0.301
2.151
0.818
5.750
0.454
12.075
0.294
27.321
0.252
0.784
0.302
2.210
0.830
5.780
0.449
12.232
0.294
28.750
0.250
0.850
0.322
2.380
0.830
5.849
0.437
12.272
0.295
29.468
0.249
0.935
0.367
2.415
0.830
5.950
0.419
12.325
0.297
32.200
0.247
1.026
0.367
2.465
0.830
6.095
0.396
12.342
0.297
35.650
0.245
1.041
0.370
2.530
0.830
6.213
0.390
12.374
0.297
36.628
0.244
1.105
0.384
2.677
0.830
6.325
0.409
12.504
0.297
37.950
0.244
1.190
0.456
2.720
0.830
6.342
0.412
12.650
0.299
1.275
0.456
2.805
0.830
6.375
0.417
12.686
0.300
1.295
0.456
2.975
0.830
6.670
0.417
12.750
0.300
1.315
0.456
2.990
0.830
7.245
0.417
13.225
0.300
1.327
0.456
3.060
0.816
7.475
0.417
13.800
0.300
1.350
0.458
3.105
0.807
7.721
0.417
13.829
0.300
Код: Выделить всё
/^[^0-9]/d
N
s/\r\n/ /
s/\t//g
Код: Выделить всё
/^\s*$/d
N
s/\n/~/
s/^\s*//
s/\s*$//
s/\s*~\s*/ /
sed -f qqq.sed qqq.txt
0.170 0.084
1.360 0.467
3.400 0.784
7.820 0.417
14.950 0.300
drBatty писал(а): ↑29.06.2010 06:11...
я-бы написал так
Код: Выделить всё
/^\s*$/d N s/\n/~/ s/^\s*// s/\s*$// s/\s*~\s*/ /
...
Код:
0.170 0.084
1.360
0.467
3.400 0.784
7.820
0.417
14.950 0.300
0.255 0.132
1.380
0.473
3.450 0.784
8.625
0.417
15.525 0.300
0.308 0.138
1.445
0.493
3.499 0.784
8.970
0.408
15.926 0.300
0.340 0.148
1.458
0.496
3.570 0.817
9.200
0.383
16.675 0.300
0.364 0.156
1.530
0.515
3.622 0.817
9.239
0.381
16.741 0.300
0.379 0.165
1.615
0.522
4.140 0.817
9.775
0.360
17.000 0.300
0.410 0.185
1.628
0.524
4.171 0.817
10.200
0.358
17.250 0.300
0.425 0.195
1.643
0.530
4.370 0.817
10.221
0.358
17.463 0.296
0.431 0.197
1.700
0.554
4.830 0.817
10.350
0.357
17.825 0.288
0.510 0.220
1.725
0.564
4.930 0.752
10.625
0.326
18.400 0.272
0.595 0.228
1.785
0.587
5.060 0.677
10.694
0.319
18.700 0.271
0.606 0.232
1.870
0.587
5.087 0.654
10.803
0.307
19.550 0.269
0.638 0.243
1.899
0.587
5.100 0.643
10.925
0.306
20.675 0.265
0.680 0.257
1.901
0.588
5.276 0.516
11.050
0.303
20.700 0.265
0.695 0.264
1.927
0.600
5.290 0.507
11.352
0.294
21.274 0.257
0.711 0.271
1.955
0.661
5.316 0.504
11.500
0.294
21.456 0.255
0.754 0.291
2.040
0.750
5.355 0.499
11.771
0.294
23.000 0.255
0.773 0.298
2.125
0.813
5.520 0.480
11.900
0.294
25.300 0.255
0.782 0.301
2.151
0.818
5.750 0.454
12.075
0.294
27.321 0.252
0.784 0.302
2.210
0.830
5.780 0.449
12.232
0.294
28.750 0.250
0.850 0.322
2.380
0.830
5.849 0.437
12.272
0.295
29.468 0.249
0.935 0.367
2.415
0.830
5.950 0.419
12.325
0.297
32.200 0.247
1.026 0.367
2.465
0.830
6.095 0.396
12.342
0.297
35.650 0.245
1.041 0.370
2.530
0.830
6.213 0.390
12.374
0.297
36.628 0.244
1.105 0.384
2.677
0.830
6.325 0.409
12.504
0.297
37.950 0.244
1.190 0.456
2.720
0.830
6.342 0.412
12.650
0.299
1.275 0.456
2.805
0.830
6.375 0.417
12.686
0.300
1.295 0.456
2.975
0.830
6.670 0.417
12.750
0.300
1.315 0.456
2.990
0.830
7.245 0.417
13.225
0.300
1.327 0.456
3.060
0.816
7.475 0.417
13.800
0.300
1.350 0.458
3.105
0.807
7.721 0.417
13.829
0.300