答え1
次の操作がawk
実行されます。
diff -y --suppress-common-lines backup.txt newfile.txt|awk -F'[>,]' '{gsub(/ /,"")} {print $2} '
答え2
次のことがわかりますdiff
。
diff --old-line-format= \
--unchanged-line-format= \
--new-line-format=%L backup.txt newfile.txt
出力を後処理するには、diff -y
次のようにします。
diff -y --suppress-common-lines backup.txt newfile.txt |
LC_ALL=C sed -n $'s/^[[:blank:]]*>\t//p'
backup.txt
しかし、このような行を含めることが可能であれば完璧ではありません[blanks]>[TAB][anything]
。
$'...'
\t
TAB文字で拡張されたksh93(現在の他のシェルでもサポートされています)の特殊なタイプの引用符。 GNU実装にはTAB(大括弧式ではありません)と既に一致するsed
必要はありません。\t
C
ロケールは[[:blank:]]
スペースまたはタブに一致します。
パイプで接続
tr -d \`\',
出力から`
文字を削除します'
。,
そして:
sed 's/[[:space:]]\{1,\}/ : /g'
各行に1つ以上の空白文字シーケンスを" : "
。
または、2つのコマンドを1つのsed
コマンドに結合します。
sed 's/[`,'\'']//g; s/[[:space:]]\{1,\}/ : /g'
sed
あるいは、並列出力を後処理するコマンドと組み合わせる。
sed $'s/^[ \t]*>\t/!d
s///p
s/[`,'\'']//g
s/[[:space:]]\{1,\}/ : /g'