Позвольте мне начать с того, что я знаю, что, вероятно, есть гораздо более простой способ сделать это.
Но это то, что у меня есть, и, надеюсь, в конце я смогу внести некоторые улучшения и / или упрощения.
Цель на данный момент
Для двойного пробела вывод, сохраненный в переменной $tmp
ниже, и индивидуальное нумерация каждой строки. Это должно дать мне каждый набор исполняемых команд в отдельных строках.
Задача 1
Я перепробовал все, что мог придумать, чтобы удвоить пробел в переменной. Перемещение команды двойного пробела и изменение самой команды.
Для нумерации файлов, которые я пытался изменить этот код:
sed = filename | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /
И, конечно, экспериментировал с awk, но без прогресса ..
Не очень долгосрочные цели
- Чтобы выполнить эти команды одну за другой и сравнить разницу в байтах. Или просто какая-то общая разница. На данный момент я знаю, что могу использовать команду diff с
file1 file2
, а затем сохранить вывод в некоторой переменной, такой как: "$diffA $diffB"
, и обновлять ее каждый раз, используя цикл, для вероятности передачи более 2 файлов в качестве аргументов.
- Чтобы узнать разницу между каждой командной строкой. И эхо что-то вроде:
строка 1 в файле1 отличается от строки 1 в файле2, проверьте это: "$ diffA $ diffB"
Вот что у меня есть, начало положено:
#!/bin/bash
FILE="$1"
echo "You Entered $FILE"
if [ -f $FILE ]; then
tmp=$(cat $FILE | sed '/./!d' | sed -n '/regex/,/regex/{/regex/d;p}'| sed -n '/---/,+2!p' | sed -n '/#/!p' | sed 's/^[ ]*//' | sed -e\
s/[^:]*:// | sed -n '/regex /!p' | sed -n '/regex /!p' | sed -n '/"regex"/,+1!p' | sed -n '/======/!p' | sed -n '/regex/!p' | sed -n '/regex\
\r/!p' | sed -n '/regex /!p' )
fi
MyVar=$(echo $tmp)
echo "$MyVar | sed G"
FILE2="$2"
if [ -f $FILE2 ]; then
if [ -f $FILE2 ]; then
tmp2=$(cat $FILE2 | sed -n '/regex/,/regex/{/regex\ S/d;p}' |\
sed -n '/#/!p' | sed -e s/[^:]*:// | sed /--------/,+10d)
fi
echo "$tmp2"
Любая помощь очень ценится.