Имея немного времени, у меня есть пакетный скрипт WINDOWS для нечеткого поиска в моих экспортированных контактах Google. Выбранный формат экспорта - Google CSV - и неудивительно, что это не простая работа!
После исправления текущей директории мой скрипт обрабатывает начальный параметр для опции fzf.exe --query.
Затем мы передаем необработанный экспорт:
- Используя cut и tr, чтобы выбрать несколько полезных полей.
- Далее идет интерфейс fzf - блестящий!
- Затем мы создаем список путем добавления новых строк
- Наконец, мы копируем вывод, затем отображаем нумерованный список
Используя set, мы получаем ввод, проверяем число выше нуля и затем помещаем эту строку на буфер обмена.
@echo off
REM Change to current cmd directory where all the tools are
cd /D "%~dp0"
REM Find people in my text file - exported from Google contacts
REM Check %1 in not null
If [%1]==[] (
set SEED=""
) ELSE (
set SEED=%1
)
REM Run the fzf over a sanitized selection from contactsGoogle.csv (and store final result)
cut -d, -f 1,31,33,35,37,39,41,43,45,47,49 ..\ZLISTS\contactsGoogle.csv | tr -s "," ":" | tr -s " :" ":" | fzf.exe --reverse --query=%SEED% | tr ":" "\n" | tee xp.txt | cat -n
REM Ask for input
echo.
set /P "line=Select line to copy : "
REM Process resulting line number
if %line%=="0" goto End
REM Check for number
SET "var="&for /f "delims=0123456789" %%i in ("%line%") do set var=%%i
if defined var ( goto End ) else (
sed -n %line%p xp.txt | tr -d '\n'| clip
)
:End
Q1. Как я могу заменить все символы новой строки в двойных кавычках, в экспортированном файле формата raw google csv, пробелами. Обратите внимание, что кавычки имеют только проблемные поля с символами новой строки. Также это WINDOWS, поэтому экранирование и цитирование команд в SED / AWK / GREP - это кошмар .
Q2. Как только я преодолею эту проблему - будет ли cut.exe видеть запятые в двойных кавычках?
Заранее большое спасибо
С уважением, Гэвин Холт