Bash echo-e cat:参数行太长

Bash echo-e cat:参数行太长,bash,echo,cat,Bash,Echo,Cat,我有一个bash脚本,可以合并一个巨大的文本文件列表并对其进行过滤。但是,由于列表太大,我会遇到“参数行太长”错误 echo -e "`cat $dir/*.txt`" | sed '/^$/d' | grep -v "\-\-\-" | sed '/</d' | tr -d \' | tr -d '\\\/<>(){}!?~;.:+`*-_ͱ' | tr -s ' ' | sed 's/^[ \t]*//' | sort -us -o $output echo-e“`cat

我有一个bash脚本,可以合并一个巨大的文本文件列表并对其进行过滤。但是,由于列表太大,我会遇到“参数行太长”错误

echo -e "`cat $dir/*.txt`" | sed '/^$/d' | grep -v "\-\-\-" | sed '/</d' | tr -d \' | tr -d '\\\/<>(){}!?~;.:+`*-_ͱ' | tr -s ' ' | sed 's/^[ \t]*//' | sort -us -o $output

echo-e“`cat$dir/*.txt`”`sed'/^$/d'`grep-v”\-\-\-\-“`sed'/
echo-e
不是扩展大多数反斜杠转义序列所必需的--
\n
\t
,许多其他序列实际上将由
读取
本身处理,除非给出可选的
-r
标志。(这就是为什么人们应该养成使用
read-r
的习惯,而没有一个明确且令人信服的理由去做其他事情)

如果您关心的所有序列都是
read
将自身扩展的序列,那么这就足够了:

while IFS= read; do
  printf '%s\n' "$REPLY"
done \
  < <(find "$dir" -name '*.txt' -exec cat '{}' +) \
  | sed [...]

扩展大多数反斜杠转义序列--
\n
\t
,以及许多其他的反斜杠转义序列都不需要echo-e
,除非给出可选的
-r
标志,否则其他的反斜杠转义序列实际上是由
读取
本身处理的。(这就是为什么人们应该养成使用
read-r
的习惯,而没有一个明确且令人信服的理由去做其他事情)

如果您关心的所有序列都是
read
将自身扩展的序列,那么这就足够了:

while IFS= read; do
  printf '%s\n' "$REPLY"
done \
  < <(find "$dir" -name '*.txt' -exec cat '{}' +) \
  | sed [...]

扩展大多数反斜杠转义序列--
\n
\t
,以及许多其他的反斜杠转义序列都不需要echo-e,除非给出可选的
-r
标志,否则其他的反斜杠转义序列实际上是由
读取
本身处理的。(这就是为什么人们应该养成使用
read-r
的习惯,而没有一个明确且令人信服的理由去做其他事情)

如果您关心的所有序列都是
read
将自身扩展的序列,那么这就足够了:

while IFS= read; do
  printf '%s\n' "$REPLY"
done \
  < <(find "$dir" -name '*.txt' -exec cat '{}' +) \
  | sed [...]

扩展大多数反斜杠转义序列--
\n
\t
,以及许多其他的反斜杠转义序列都不需要echo-e,除非给出可选的
-r
标志,否则其他的反斜杠转义序列实际上是由
读取
本身处理的。(这就是为什么人们应该养成使用
read-r
的习惯,而没有一个明确且令人信服的理由去做其他事情)

如果您关心的所有序列都是
read
将自身扩展的序列,那么这就足够了:

while IFS= read; do
  printf '%s\n' "$REPLY"
done \
  < <(find "$dir" -name '*.txt' -exec cat '{}' +) \
  | sed [...]

您使用echo-e有什么原因吗?是否确实要将文本文件中的转义序列更改为它们所表示的字符?通常,避免参数列表过长错误的正确方法是使用一个命令,该命令在参数不能全部放在一个上时运行多个命令<代码>查找“$dir”-name'*.txt'-exec cat'{}+是一个典型的例子。是的,我需要更改转义序列;(您使用echo-e有什么原因吗??您真的想将文本文件中的转义序列更改为它们所代表的字符吗?通常,避免参数列表过长错误的正确方法是使用一个命令,该命令在参数不适合一个时运行多个命令。
查找“$dir”-name'*.txt'-exec cat'{}'+
是一个典型的例子。是的,我需要更改转义序列;(您使用echo-e有什么原因吗??您真的想将文本文件中的转义序列更改为它们所代表的字符吗?通常,避免参数列表过长错误的正确方法是使用一个命令,该命令在参数不适合一个时运行多个命令。
查找“$dir”-name'*.txt'-exec cat'{}'+
是一个典型的例子。是的,我需要更改转义序列;(您使用echo-e有什么原因吗??您真的想将文本文件中的转义序列更改为它们所代表的字符吗?通常,避免参数列表过长错误的正确方法是使用一个命令,该命令在参数不适合一个时运行多个命令。
查找“$dir”-name'*.txt'-exec cat'{}'+
是一个典型的例子。是的,我需要更改转义序列;(谢谢。这很有帮助,但是我如何将ehco-e包含在反斜杠转义的解释中,或者有更好的解决方案吗?对不起,我还在学习。谢谢。这很有帮助,但是我如何将ehco-e包含在反斜杠转义的解释中,或者有更好的解决方案呢?对不起,我还在学习。谢谢。这很有帮助,但是我如何将ehco-e包含在反斜杠转义的解释中呢解释反斜杠转义还是有更好的解决方案?抱歉,我仍在学习。谢谢。这很有帮助,但我如何将ehco-e纳入反斜杠转义的解释中,或者有更好的解决方案?抱歉,我仍在学习。