我想删除包含一些文本作为列标题的csv文件中的列。
我希望output_file与grep找到的文件名相同。
我做了以下
grep -l "pattern" * | xargs -0 awk -F'\t' '{print $1"\t"$2}' > output_file
如何将结果输出到grep找到的同一文件?
谢谢。
答案 0 :(得分:1)
这样做:
grep -l "pattern" * | xargs awk -F'\t' '{print $1"\t"$2 > FILENAME}'
FILENAME是输入文件的awk变量
示例:
$ cat file1
ABC zzz
EFG xxx
HIJ yyy
$ cat file2
123 aaa
456 bbb
789 ccc
grep -l "123" * | xargs awk '{print $2"\t"$1 > FILENAME}'
我在包含“123”的文件中切换第1列和第2列并覆盖file2。
$ cat file1
ABC zzz
EFG xxx
HIJ yyy
$ cat file2
aaa 123
bbb 456
ccc 789