2行目のCSVファイルの行を比較し、2行目のファイルの末尾に「一致が見つかりました」または 「見つからない」という出力を出力するスクリプトがあります。それは本当にうまくいっていましたが、最近何がうまくいかなかったのかCygwinを更新しました。今度はすべての行の次の行に出力を出力します。何かがCygwin-のPythonの新しいバージョンで変更され、そして以下Sed -iは新しい行を作成して出力を出力します
シェルいる私が使用していたコード行です:
sed -i "${lineNum}s/$/,Found/" file2.csv
File1.csv
abcd efgh ijkl
mnop qrst xyz
File2.csv
abcd efgh ijkl found
mnop qrst xyzzz not found
を、それは上記のように印刷する必要があります。以下のように表示されます。
File2.csv
abcd efgh ijkl
found
mnop qrst xyzzz
not found
ご協力いただき誠にありがとうございます。
これから動作するようにほぼ十分な情報ではありません - 実際の例を見ずデータがどんなものでなければならないのか、それが何であるのか、「出力を次の行に出力する」ということは実際には実際には意味しません。プロセスが誤っている入力の例(理想的には可能な限り小さな例)を提供するには[編集]してください。修正のための正確なコマンド。期待される出力。実際の出力[mcve]の作成に関するヘルプセンターのガイドをご覧ください。 –
ところで、これが実際に行単位の比較を行っている場合、 'sed -i'を使うのはいい考えではないでしょう。コマンドを実行するたびに出力ファイル全体を一から書き直しています。 'comm'によって実装されたアルゴリズムに似たアルゴリズムを使用して、1回のパスで2つの入力から出力ファイルを生成する方がずっと効率的です。 –
お寄せいただきありがとうございます。私はその質問を編集した。もう一度それを調べてください。 – Ashok