文字が偶数回表示される行をコピーします。

文字が偶数回表示される行をコピーします。

データベースにロードする必要があるいくつかのファイルを受け取りました。これらのファイルにはユーザー入力があり、場合によっては奇数の引用符文字を使用します。この履歴をフィルタリングしたいです。

特定の文字を含む行を奇数または偶数回検索したいです。

入力例:

12345|what"s wrong|20121212

答え1

そしてawk

awk -F \" 'NF % 2' < yourfile

偶数("- で区切られたフィールドの数は奇数)です。

awk -F \" 'NF % 2 == 0' < yourfile

または、ファイルを2つのファイルに分割します。

awk -F \" '{if (NF%2) print > "even.txt"
            else print > "odd.txt"}' < yourfile

奇数番。

grep偶数の場合は、次を使用します。

grep -Ex '(([^"]*"){2})*[^"]*'

奇数の場合は、この-vオプションを追加してください。

答え2

選ぶ真珠方法:

-"奇数回現れる出力ライン

perl -ne 'print if y/\"// % 2' yourfile

- 偶数ライン"出力

perl -ne 'print if y/\"// % 2 == 0' yourfile

  • y///- Perl音訳演算子

答え3

sed -ne '
   h;:a
   s/"//;T
   s/"//;ta
   g;p
' yourfile

布材

  1. 破棄処理が始まるので、原稿を保存してください。
  2. ループを設定し、最初のdelが失敗した場合は、連続して1つの引用符を消去します。
  3. 2番目のクリーンアップで失敗=>奇数の引用符がある場合は、保存されたソースから検索して印刷します。
  4. それ以外の場合はループバックします。

関連情報