【发布时间】:2017-09-14 17:29:15
【问题描述】:
我试图使用命令“tr”和“awk”对文件进行屏蔽,但失败并出现致命错误:无法打开管道(打开的管道太多)错误。 FILE 有大约 1000000 条记录,数量相当庞大。 下面是我正在尝试的代码:-
awk - F "|" - v OFS="|" '{ "echo \""$1"\" | tr \" 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\" \" QWERTYUIOPASDFGHJKLZXCVBNM9876543210mnbvcxzlkjhgfdsapoiuytrewq\"" | get line $1}1' FILE.CSV > test.CSV
显示错误:-
awk: (FILENAME=- FNR=1019) fatal: cannot open pipe `echo ""TTP_123"" | tr "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" "QWERTYUIOPASDFGHJKLZXCVBNM9876543210mnbvcxzlkjhgfdsapoiuytrewq"' (Too many open pipes)
请让我知道我在这里做错了什么 另请注意,任何数量的列都可以用于掩蔽,并且可以在此示例中的任何位置我已采用 1 和 2 列位置,但它可以是 3 和 10 或 5、7、25 列 谢谢 阿杰
【问题讨论】:
-
不清楚,请在代码标签中向我们展示带有预期 output_file 的示例 Input_file,以便我们尝试帮助您。
-
每次都需要关闭管道。但这就是你所做的一切吗?为什么不使用
sed? -
@RavinderSingh13 抱歉无法显示 1000000 条数据记录,因为这适用于 1000 条记录
-
Kevin 我应该如何使用 SED 来实现这个,或者我应该如何在我的代码中使用 Close,你能告诉我吗
-
这就是为什么我提到样本(当然只有几行),这意味着数据的样子(即使它可能没有实际数据,可能有虚拟值)但接近它以便我们可以知道你想要达到的目标。
标签: awk