让我开始说我知道可能有一个更简单的方法来做到这一点。 但是,这是我所拥有的,是的,希望我可以在最后做出一些改进和/或简化。Double Spacing Complex Sed输出
目标作为此时
要双空间存储在下面的$tmp
可变输出的和单独地为每行编号。这样做应该为我提供每行可执行命令集。
问题1
我已经试过了我能想到的双空间什么是可变的一切。移动双空间命令,并更改命令本身。
为Number我试图修改此代码文件:
sed = filename | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1/
,当然还有使用awk,但没有取得任何进展实验各地..
并非如此长期目标
- 要逐一执行这些命令并比较字节差异。或者只是任何一般的区别。我知道在这一点上,我可以使用
file1 file2
diff命令,然后将输出保存在一些变量中,如:"$diffA $diffB"
并每次使用循环更新它,以便有超过2个文件作为参数传递的机会。 - 说出每个命令行之间的区别。和回声一样的东西:
在文件1线1在文件2,从1号线不同,检查出来:“$迪法$ 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"
任何帮助非常感谢。
除非您给我们一个关于实际*输入*的样子,以及最终要实现什么样的转换的想法,您很可能会发现没有人理解问题并可以帮助您。就我而言,在标题之后你已经失去了我。 – Tomalak 2008-12-05 08:34:30