 |
|
blackeangel |
11-03-2016 14:08 2614938 |
Удаление пустых строк, пробелов и/или конца строк
Всем привет. Есть файл содержащий
Код:
major minor #blocks name
7 0 1254 loop0
7 1 32768 loop1
254 0 163840 zram0
179 0 15392768 mmcblk0
179 1 3072 mmcblk0p1
179 2 5120 mmcblk0p2
179 3 10240 mmcblk0p3
179 4 10240 mmcblk0p4
179 5 512 mmcblk0p5
179 6 512 mmcblk0p6
179 7 16384 mmcblk0p7
179 8 16384 mmcblk0p8
179 9 8192 mmcblk0p9
179 10 10240 mmcblk0p10
179 11 512 mmcblk0p11
179 12 2048 mmcblk0p12
179 13 6144 mmcblk0p13
179 14 8192 mmcblk0p14
179 15 5120 mmcblk0p15
179 16 5120 mmcblk0p16
179 17 1024 mmcblk0p17
179 18 32768 mmcblk0p18
179 19 37888 mmcblk0p19
179 20 1572864 mmcblk0p20
179 21 409600 mmcblk0p21
179 22 13213184 mmcblk0p22
179 23 16384 mmcblk0p23
179 96 4096 mmcblk0rpmb
179 64 4096 mmcblk0boot1
179 32 4096 mmcblk0boot0
179 128 31207424 mmcblk1
179 129 31203328 mmcblk1p1
необходимо удалить пустые строки, пробелы и/или переносы строк.
Пробовал вот такими медодами
Код:
1. set /p x=<blocks.txt
set /p "x=%x%" <nul >blocks2.txt
2. for /f "tokens=3* delims=" %%a in (blocks.txt) do (
echo %%a >>blocks2.txt)
3. findstr /v "^$" "blocks.txt" >>blocks2.txt
4. findstr /BRC:"^[ ]*[^ ]" "blocks.txt" >> "blocks2.txt"
5. for /f "eol= delims=" %%A in (blocks.txt) do (
echo %%A >>blocks2.txt)
ничего не помогло.
Какие еще есть предложения?
P.S. Без использования sed, awk и т.п. сторонего софта.
|
Что значит «удалить пробелы, …переносы строк»? Как должно в итоге выглядеть, например, это:
Код:
major minor #blocks name
7 0 1254 loop0
7 1 32768 loop1
254 0 163840 zram0
?
|
Цитата:
Цитата blackeangel
необходимо удалить пустые строки, пробелы и/или переносы строк. »
|
Что должно получиться в результате? Одна единственная строка символов без пробелов?
Код:
@echo off
setlocal
for /f "tokens=*" %%i in (1.txt) do call:0 %%i
goto:eof
:0
set "n=%*"
0>nul set /p="%n: =%"
|
blackeangel |
11-03-2016 18:24 2615021 |
Должно получиться такое
Код:
major minor #blocks name
7 0 1254 loop0
7 1 32768 loop1
254 0 163840 zram0
179 0 15392768 mmcblk0
179 1 3072 mmcblk0p1
179 2 5120 mmcblk0p2
179 3 10240 mmcblk0p3
179 4 10240 mmcblk0p4
179 5 512 mmcblk0p5
179 6 512 mmcblk0p6
179 7 16384 mmcblk0p7
179 8 16384 mmcblk0p8
179 9 8192 mmcblk0p9
179 10 10240 mmcblk0p10
179 11 512 mmcblk0p11
179 12 2048 mmcblk0p12
179 13 6144 mmcblk0p13
179 14 8192 mmcblk0p14
179 15 5120 mmcblk0p15
179 16 5120 mmcblk0p16
179 17 1024 mmcblk0p17
179 18 32768 mmcblk0p18
179 19 37888 mmcblk0p19
179 20 1572864 mmcblk0p20
179 21 409600 mmcblk0p21
179 22 13213184 mmcblk0p22
179 23 16384 mmcblk0p23
179 96 4096 mmcblk0rpmb
179 64 4096 mmcblk0boot1
179 32 4096 mmcblk0boot0
179 128 31207424 mmcblk1
179 129 31203328 mmcblk1p1
|
blackeangel |
11-03-2016 18:29 2615023 |
Вот файлы которые помогут понять
|
greg zakharov |
11-03-2016 18:29 2615024 |
В чем сложность?
Код:
findstr /virc:"^$" file
|
blackeangel |
11-03-2016 18:52 2615031 |
Цитата:
Цитата greg zakharov
(Сообщение 2615024)
В чем сложность?
Код:
findstr /virc:"^$" file
|
В том что остается тот же файл без изменений
|
greg zakharov |
11-03-2016 19:06 2615034 |
Цитата:
Цитата blackeangel
В том что остается тот же файл без изменений
|
Не бздите, сударь: никто до Вас не жаловался.
|
blackeangel |
11-03-2016 19:10 2615035 |
greg zakharov, сударь извольте проверить, во вложениях я выкладывал файл blocks.txt. попробуйте.
|
greg zakharov, там по-идиотски сделанный то ли вывод утилиты, то ли разбор этого вывода, я не разбирался. В итоге имеем — «CrCrLf».
blackeangel, откуда берётся этот файл? Как получается, что часть строк заканчивается Cr, часть CrLf?
|
blackeangel |
11-03-2016 20:17 2615053 |
Iska, в батнике написано как он берется. Через adb с телефона берутся все блоки и пишутся в файл. Строка там где adb.exe shell cat /proc/partitions > blocks.txt. По сути этот partitions есть файл, но как он берется хз, тк на телефоне он пуст.
В общем имеем что имеем.
|
Делайте точно так же, как при разборе результатов «wmic.exe» — двойным разбором по «for /f», наподобие:
Код:
@echo off
for /f "usebackq delims=" %%i in ("blocks.txt") do for /f "usebackq delims=" %%j in ('%%i') do echo %%j
В результате получите нормальный вывод с обычными же «CrLf».
|
blackeangel |
11-03-2016 21:49 2615075 |
Iska, спасибо за мысли о том как берется этот файл. Немного через коленку но получаю файл нормальный теперь. Еще раз спасибо за мысли и участие :)
|
Время: 21:57.
© OSzone.net 2001-