【发布时间】:2010-09-25 11:30:23
【问题描述】:
首先让我说我知道可能有一种更简单的方法可以做到这一点。 但这就是我所拥有的,是的,希望我能在最后做出一些改进和/或简化。
目前的目标
要将存储在下面$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"
非常感谢任何帮助。
【问题讨论】:
-
除非您告诉我们实际的 输入 是什么样的,以及您最终想要实现的转换,否则您很可能找不到了解问题的人并且可以帮助你。就我而言,你在标题之后就失去了我。
-
你也不应该发布phpBB [标签],它们在这里不起作用。使用编辑器上方的格式化按钮,花半分钟时间阅读编辑提示。
-
我不知道你的输入是什么样的,也不知道你希望你的输出是什么样的。