讓我開始說我知道可能有一個更簡單的方法來做到這一點。 但是,這是我所擁有的,是的,希望我可以在最後做出一些改進和/或簡化。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