これを行うには、おそらくもっと簡単な方法があることを知っていると言うことから始めましょう。しかし、これは私が持っているものであり、うまくいけば、最後にいくつかの改善や簡素化を行うことができます.
現時点での目標
以下の変数に格納された出力をダブル スペースにするには、$tmp
各行に個別に番号を付けます。これを行うと、実行可能なコマンドの各セットが別々の行に表示されます。
問題1
変数の内容を2倍にするために、考えられるすべてのことを試しました。ダブル スペース コマンドを移動し、コマンド自体を変更します。
このコードを変更しようとしたファイルに番号を付けるには:
sed = filename | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /
そしてもちろん、awkを試してみましたが、進歩はありません..
それほど長期的な目標ではない
- これらのコマンドを 1 つずつ実行し、バイトの違いを比較します。または、一般的な違いだけです。この時点で、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"
どんな助けでも大歓迎です。