让我首先说我知道可能有一种更简单的方法可以做到这一点。但这就是我所拥有的,是的,希望我能在最后做出一些改进和/或简化。
此刻的目标
将存储在下面变量中的输出加倍,并对$tmp
每一行单独编号。这样做应该在不同的行上为我提供每组可执行命令。
问题 1
我已经尝试了所有我能想到的将变量中的空间加倍的方法。移动双空格命令,并更改命令本身。
要对我尝试修改此代码的文件进行编号:
sed = filename | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /
当然,用 awk 进行了实验,但没有进展..
不是那么长期的目标
- 将这些命令一一执行并比较字节差异。或者只是任何一般的差异。我知道此时我可以使用 diff 命令,
file1 file2
然后将输出保存在某个变量中,例如:"$diffA $diffB"
并每次使用循环更新它,以便有可能将超过 2 个文件作为参数传递。 - 告诉每个命令行之间的区别。并回显类似:
file1 中的第 1 行与 file2 中的第 1 行不同,请查看:“$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"
很感谢任何形式的帮助。