データベースにロードする必要があるいくつかのファイルを受け取りました。これらのファイルにはユーザー入力があり、場合によっては奇数の引用符文字を使用します。この履歴をフィルタリングしたいです。
特定の文字を含む行を奇数または偶数回検索したいです。
入力例:
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
布材
- 破棄処理が始まるので、原稿を保存してください。
- ループを設定し、最初のdelが失敗した場合は、連続して1つの引用符を消去します。
- 2番目のクリーンアップで失敗=>奇数の引用符がある場合は、保存されたソースから検索して印刷します。
- それ以外の場合はループバックします。