【问题标题】:Read Whole Text Linux Bash File阅读全文 Linux Bash 文件
【发布时间】:2015-07-16 17:38:14
【问题描述】:

如何将整个文本文件加载到单个变量中?

我想这样做是为了将几个文本文件合并为一个。

基本上,我正在尝试为不支持预处理 (SMT2) 的语言模拟预处理阶段

谢谢大家!

【问题讨论】:

  • 您真的需要变量中的内容还是只是想将多个文件 concatenate 合并到一个文件中?
  • 我特别需要连接。

标签: linux bash file-io text-files


【解决方案1】:

bash 中还有另一种不使用 cat 的方法:

#!/bin/bash
var=$(<file.txt)
echo "$var"

【讨论】:

    【解决方案2】:

    简单!只需使用cat:

    variable=`cat somefile`
    

    或者,更准确地说:

    variable=$(cat somefile)
    

    它们都做同样的事情并且会达到预期的结果(后者更具可读性,你可以嵌套它:)

    variable=$(cat $(find ./ -name "someFile"))
    

    在你的情况下,你似乎想做:

    variable=$(cat file1 file2 file3)
    

    【讨论】:

    • 就它们都是命令替换的形式而言,它们做同样的事情,尽管它们并不相等。来自 Bash 参考手册中的3.5.4 Command Substitution:“当使用旧式反引号形式的替换时,反斜杠保留其字面含义,除非后面跟着 '$'、''' 或 '\'。第一个反引号不在前面通过反斜杠终止命令替换。当使用 $(command) 形式时,括号之间的所有字符组成命令;没有一个被特殊处理。"
    猜你喜欢
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    相关资源
    最近更新 更多