head命令删除部分行

问题描述

我有一个包含以下数据的 csv 文件 (settings.csv)(分隔符是一个空格):

-n $(output_name) 
--outdir “peaks/$(output_name)” 
-g hs 
-f AUTO 
--qvalue 0.05 
--extsize 200 
-B
sample input output_name
sample-chip1 sample-input1 sample1
sample-chip2 sample-input2 sample2

当我调用 head -7 settings.csv 时,我得到了预期的输出:

-n $(output_name) 
--outdir “peaks/$(output_name)” 
-g hs 
-f AUTO 
--qvalue 0.05 
--extsize 200 
-B

接下来,我尝试将此输出存储在名为 settings 的变量中,并带有 settings=$(head -7 settings.csv),当我 echo $settings 时,我得到了此输出:

$(output_name) --outdir “peaks/$(output_name)” -g hs -f AUTO --qvalue 0.05 --extsize 200 -B

它删除了settings.csv中第一行的-n部分,不知道为什么。如何在不丢失 $settings 的情况下创建 -n

解决方法

settings 变量已经包含您希望在那里出现的 -n 选项。只是 echo 命令将其解释为它自己的(echo 的)选项。

避免此问题的一种方法是引用参数:

echo "$settings"

或者,您可以使用

printf '%s\n' "$settings"

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...