aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/extract/cut61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/extract/cut b/src/extract/cut
new file mode 100755
index 0000000..fa6cb99
--- /dev/null
+++ b/src/extract/cut
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+# -*- mode: python, encoding: utf-8 -*-
+
+# libgamma -- Display server abstraction layer for gamma ramp adjustments
+# Copyright (C) 2014 Mattias Andrée (maandree@member.fsf.org)
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this library. If not, see <http://www.gnu.org/licenses/>.
+
+# Very limited GNU cut.
+
+
+import sys
+
+
+delimiter = '\t'
+fields = []
+complement = False
+
+
+i, n = 1, len(sys.argv)
+while i < n:
+ arg = sys.argv[i]
+ if arg == '-d':
+ i += 1
+ delimiter = sys.argv[i]
+ elif arg == '-f':
+ i += 1
+ fields += [int(f) for f in sys.argv[i].split(',')]
+ elif arg == '--complement':
+ complement = True
+ i += 1
+
+
+fields = set(fields)
+
+
+def modify(line):
+ line = line.split(delimiter)
+ if not complement:
+ line = [line[i] for i in range(len(line)) if i not in fields]
+ else:
+ line = [line[i] for i in range(len(line)) if i in fields]
+ return delimiter.join(line)
+
+
+data = sys.stdin.read()
+data = '\n'.join(modify(line) for line in data.split('\n'))
+sys.stdout.write(data)
+sys.stdout.flush()
+