PDA

Показать полную графическую версию : [решено] Удаление пустых строк, пробелов и/или конца строк


blackeangel
11-03-2016, 14:08
Всем привет. Есть файл содержащий

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 и т.п. сторонего софта.

Iska
11-03-2016, 14:24
Что значит «удалить пробелы, …переносы строк»? Как должно в итоге выглядеть, например, это:
major minor #blocks name



7 0 1254 loop0

7 1 32768 loop1

254 0 163840 zram0

?

Foreigner
11-03-2016, 14:32
необходимо удалить пустые строки, пробелы и/или переносы строк. »
Что должно получиться в результате? Одна единственная строка символов без пробелов?

@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
Должно получиться такое

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
Вот файлы которые помогут понять

greg zakharov
11-03-2016, 18:29
В чем сложность?
findstr /virc:"^$" file

blackeangel
11-03-2016, 18:52
В чем сложность?
findstr /virc:"^$" file
В том что остается тот же файл без изменений

greg zakharov
11-03-2016, 19:06
В том что остается тот же файл без измененийНе бздите, сударь: никто до Вас не жаловался.

blackeangel
11-03-2016, 19:10
greg zakharov, сударь извольте проверить, во вложениях я выкладывал файл blocks.txt. попробуйте.

Iska
11-03-2016, 19:59
greg zakharov, там по-идиотски сделанный то ли вывод утилиты, то ли разбор этого вывода, я не разбирался. В итоге имеем — «CrCrLf».

blackeangel, откуда берётся этот файл? Как получается, что часть строк заканчивается Cr, часть CrLf?

blackeangel
11-03-2016, 20:17
Iska, в батнике написано как он берется. Через adb с телефона берутся все блоки и пишутся в файл. Строка там где adb.exe shell cat /proc/partitions > blocks.txt. По сути этот partitions есть файл, но как он берется хз, тк на телефоне он пуст.
В общем имеем что имеем.

Iska
11-03-2016, 21:08
Делайте точно так же, как при разборе результатов «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
Iska, спасибо за мысли о том как берется этот файл. Немного через коленку но получаю файл нормальный теперь. Еще раз спасибо за мысли и участие :)




© OSzone.net 2001-2012