首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于` `cat file`中的i,给变量加空格

对于cat file中的i,给变量加空格是为了避免在文件名中存在空格或特殊字符时出现错误。在Linux或Unix系统中,cat命令用于将文件内容输出到终端。如果文件名中包含空格或特殊字符,Shell会将其解释为命令的参数或选项,从而导致错误。为了避免这种情况,可以将变量名用引号括起来或在变量名中的空格前加上反斜杠来转义,例如:

代码语言:txt
复制
file="file name.txt"
cat "$file"

或者

代码语言:txt
复制
file=file\ name.txt
cat $file

这样可以确保变量被正确地解释为文件名,并且可以处理包含空格或特殊字符的文件名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

awk 的进阶使用案例

FNR 同NR,但相对于当前文件。 FS 字段分隔符(默认是任何空格)。 IGNORECASE 如果为真,则进行忽略大小写的匹配。 NF 当前记录中的字段数。 NR 当前记录数。...域 记录中每个单词称做“域”,默认情况下以空格或tab分隔。awk可跟踪域的个数,并在内建变量NF中保存该值。...如 awk '{print $1,$3}' test将打印test文件中第一和第三个以空格分开的列(域)。 域分隔符 内建变量FS保存输入域分隔符的值,默认是空格或tab。...变量的初始值为1,若i小于可等于NF(记录中域的个数),则执行打印语句,且i增加1。...数组name中的下标是一个自定义变量x,awk初始化x的值为0,在每次使用后增加1。第二个域的值被赋给name数组的各个元素。

1.9K20

循环4-for循环

一、语法 for循环和while类似,常用于执行有限次数的循环,有两种语法结构, 1.变量列表循环 语法: for 变量名 in 变量取值列表 do 指令...... done 变量取值列表中的值,要用空格隔开...说明: 依次获取“变量取值列表”中的值赋值给“变量名”,然后执行“指令”,再重复,直到列表中的所有值都执行过一次后,结束循环 2.C语言结构循环 for((exp1;exp2;exp3)) do 指令......... done 三个表达式用分号隔开 说明: 小括号内是三个表达式,典型样式为((i=1;ii++)),按顺序分别是变量初始化值,变量范围,变量自增或自减,当第一个表达式的i值符合第二个表达式的范围时...done 执行结果 1 2 3 4 2)C语言循环结构 脚本 for((i=1;ii++)) do echo $i done 执行结果 1 2 3 当i自加结果等于4后,不符合条件表达式要求,...2)省略取值列表传参 当没有in和取值列表时,其实相当于for file in $@,即接收命令行传递的所有参数 cat /server/scripts/for1.sh #!

1.8K40
  • 珍藏多年的shell脚本学习的入门指南

    前言 ---- 对于软件工程师,shell是必学的,不会shell是当不好程序员的。...赋值 ---- # 赋值语句的等号前后不能有空格 a="test" # 无空格的字符串,可以加" ",也可以不加 b=23 c=("a" "b" "c") 2....整数运算 # shell中默认都是字符串操作 a=1 a=$a+1 # 这个会输出:1+1,而不是2 # let操作符 let a+=1 # let表达式内变量不用加$ echo $a...if,必须:if [ i –ne 0 ];但支持字符串变量直接if,if [ str ] 如果字符串非0 一定要注意中括号前后的空格!...# 注意:字符串变量最好加上双引号,否则如果变量值本身有空格等,就会报错,会变成一个命令,这里经常出错 # 注意:比较符等号的前后一定要有空格 if [ "$a" = "hello" ] if [

    60950

    shell 教程,这次我要步步详解,学会了以后能早点下班

    shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。...使用一个定义过的变量,只要在变量名前面加美元符号$即可,如: author="长生" echo $author echo ${author} 变量名外面的花括号{ }是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界...推荐给所有变量加上花括号{ },这是个良好的编程习惯。 已定义的变量,可以被重新赋值 第二次对变量赋值时不能在变量名前加,只有在使用变量时才能加。...下面的代码中,使用 cat 命令将 log.txt 的内容读取出来,并赋值给一个变量,然后使用 echo 命令输出。..." exit fi while read -r line #从file文件中读取文件内容赋值给line #(使用参数r会屏蔽文本中的特殊符号,只做输出不做转译) do echo $line

    4.2K20

    Linux下常用的shell脚本整理

    /bin/bash   3. cat 文件 |grep -a "关键词" >> result.log   备注:把文件中包含关键词的行输出到result.log中。   ...9、时间格式化,中间有空格的需要加引号   Shell代码   1.   2. #!/bin/bash   3..../bin/bash   3. cat $FILE1 $FILE2 |grep -a "关键字" > $MERGE_FILE   12、根据关键字统计行数,赋值给变量   Shell代码   1.   2...COUNT=$(cat $FILE |grep -a "关键字" |wc -l)  备注:“$FILE”表示要统计的文件,“关键字”要包含的关键字,“wc”统计文件(-l行数,-w字数,-c字节数)   ...##示例2:中括号   10. c=10   11. echo $[c*20]   12. echo $[$c*20]   备注:此种写法括号里面的变量可以不用加“$”符号,但是括号外面的“$”符号一定要加上

    4.1K40

    生信人的自我修养:Linux 命令速查手册(全文引用)

    file # 删除行前的空白:空格,制表符 sed 's/\s*$//' file # 删除行尾的空白:空格,制表符 sed 's/^\s*//;s/\s*$//' file # 删除行首和行尾的空白...:空格,制表符 sed 's/AA/BB/' file # 将文件中的AA替换成BB,只替换一行中第一次出现的AA,替换后的结果输出到屏幕 sed 's/AA/BB/g' file # 将文件中的所有...AA都替换成BB,替换后的结果输出到屏幕 sed -i 's/AA/BB/g' file # 将文件中的所有AA都替换成BB,直接更改文件的内容 sed '/CC/s/AA/BB/g' file# 只替换那些含有...,也可以是正则表达式 常用参数 -F value 设置域分隔符,相当于给 FS 内置变量赋值 -v var=value 将变量 value 的值赋给程序变量 var,-v 可以多次使用 记录与字段 记录是一次读入的内容...,通常是文件的一行,保存在字段变量 0中,记录可以被分割成字段,保存在变量 1, 2,..., NF 中。

    4K40

    生信人的自我修养:Linux 命令速查手册

    files # 搜索的pattern来自于文件中 grep -i pattern files # 不区分大小写。...:空格,制表符 sed 's/AA/BB/' file # 将文件中的AA替换成BB,只替换一行中第一次出现的AA,替换后的结果输出到屏幕 sed 's/AA/BB/g' file # 将文件中的所有...AA都替换成BB,替换后的结果输出到屏幕 sed -i 's/AA/BB/g' file # 将文件中的所有AA都替换成BB,直接更改文件的内容 sed '/CC/s/AA/BB/g' file# 只替换那些含有...,也可以是正则表达式 常用参数 -F value 设置域分隔符,相当于给 FS 内置变量赋值 -v var=value 将变量 value 的值赋给程序变量 var,-v 可以多次使用 记录与字段 记录是一次读入的内容...,通常是文件的一行,保存在字段变量 中,记录可以被分割成字段,保存在变量 1, ,, NF 中。

    7.4K22

    常用 linux 命令集锦

    cat -b linuxfile1 linuxfile2 >> linuxfile3 补充说明: cat file1 file2 > file表示将file1和file2的内容串接后输入到file...cat file1 file2 >>file表示将file1和file2的内容串接后输入到file文件中,如果已经存在,新内容追加在file文件原内容的后面。...` 7. sed处理过的输出是直接输出到屏幕上的,使用参数"i"直接在文件中替换。...input-file(s) 是待处理的文件。 在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。...域 记录中每个单词称做"域",默认情况下以空格或tab分隔。awk可跟踪域的个数,并在内建变量NF中保存该值。如 域分隔符 内建变量FS保存输入域分隔符的值,默认是空格或tab。

    4.5K10

    【说站】Linux环境sed工具的使用及工作原理

    --- 把模式空间内容删除掉,不再自动打印了  a --- 再某些行后面加内容  i --- 再某些行前面加内容  c --- 替换某一行的内容  w --- file 另存为指定文件  r...,可以是其它形式:s@@@,s### s/模式/替代的字符串/修饰符 搜索替代的修饰符: g --- 行内全局替换 p --- 显示替换成功的行 w --- /PATH/FILE 将替换成功的行保存至文件中...I,i --- 忽略大小写 # &符号:待变前面搜索出来的内容。 .../' #输出abc 值留下了第一个分组 #搜索替换和& --给前面特定的内容后面加内容 sed -nr 's/r..t/&er/gp' /etc/passwd #给搜索到的内容加上er结尾 #获取分区利用率...解决方法;cat /etc/passwd | sed -nr '/'$name'/p' #再加一个单引号把变量括起来 把'/'和'/p'成对了,变量空出来了 #多点编辑并调用变量 #使用变量的方式修改httpd

    1.3K20

    2020-09_Shell 编程笔记

    它在操作系统的外层,负责直接与用户的对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户。 3. 简单和复杂的两个 shell 脚本。 范例 1..../bin/bash # 清除日志脚本 LOG_DIR=/var/log ROOT_UID=0 # $UID为0的时候,用户才具有root用户的权限 # 要使用root用户来运行,中括号加空格隔开 if...成对的符号内容一次写出来,防止遗漏,如:{},[],’’,"" II. [] 中括号两端要有空格,书写时即可留出空格[ ] III....普通字符串变量定义: 变量名=value; 变量名=‘value’; 变量名=’'value" II. 命令变量: 变量名=``; 变量名=$() 习惯:数字不加引号,其他默认加双引号。...无引号:一般连续的字符串,数字i,路径等可以不加引号。不过最好情况用双引号替代之。 3. 特殊变量 I.

    1.4K10

    Linux进阶命令和Shell编程

    wc语法: 示例: 3.3sort 命令 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。...一个系统可以存在多个shell,可以通过:cat /etc/shells 命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的。...4.1 Shell的执行方式 首先需要赋予+x的权限,即执行的权限 bash或sh +脚本,就是sh加空格加脚本名称 在脚本的路径前加". " 4.2变量和运算符 变量:Shell中的变量分为“系统变量...将命令的返回值赋给变量 可以使用以下两种方式将返回值赋给变量 特殊变量 运算符: 格式 :expr m + n 或$((m+n)) ,注意expr运算符间要有空格,m,n与+之间也要有空格。...写完脚本之后记得chmod +x expr.sh给脚本添加权限。 4.3循环 for循环 第一种形式 第二种形式 注意括号必须是两对,就是这种语法,而且不能是int i=1,而是直接写i=1。

    1.7K80

    linux shell指令大全整理

    /test.sh 变量类型 局部变量 在脚本中定义, 仅在当前shell中有效, 其他shell不能访问 环境变量 所有程序, 包括shell启动的程序, 都能访问环境变量, 在c中通过system()...局部变量 # 定义变量, 不能有空格, 对于文本有没有双引号好像都可以 country=china country="china" # 数字没有双引号就是数字, 有就是文本 number=100 #...mkdir dir$i done #通配符 for i in /etc/*.conf #用$()效果和``一样,执行脚本读取返回值 for i in $(cat /root/users.txt...如果希望stderr重定向到file, 可以这样写, 在>前加2 command 2>file 标准错误文件 stdout 和 stderr 合并后重定向到 file command > file 2>...代表一个字符 [abcd] 匹配abcd中的任何一个字符 [a-z] 表示范围a-z,中的任何一个字符 管道符 |:把前面命令的结果给后面的命令 arp -n|grep ether|tr -s '

    1.7K50

    awk详解「建议收藏」

    一、数据字段变量 awk把分割后的数据字段自动分配给数据字段变量 $0表示整行文本 $1表示文本行中第一个数据字段 $2表示文本行中第二个数据字段 $n表示文本行中第n个数据字段 root@lzj-virtual-machine...awk '{print $2}' file 如不显示指定字段分隔符,awk的默认字段分隔符为任意空白字符,包括制表符、空格符、换行符等。...六、在program中使用变量 变量又分为两种形式:awk内置的变量;用户自定义的变量。 【1】、内置变量 1....NR和FNR加,例如,如果对NR加,加入NR等于5,实际就是取每条记录的第5个数据字段,实际没有这么多,只能取到空。...注意在shell命令中,赋值语句“=”的前后是不能有空格的,但是在awk程序的内部是可以有的,因为awk是一种单独的编程语言。

    1.8K10

    Shell脚本命令常用技巧

    $可以理解为取内容运算符 echo是打印 export是设置环境变量 查看PATH变量值用echo ,查看变量长度用{#PATH} pgrep ssh显示ssh进程的pid号 cat /proc/16119...find指令后面必须有基本路径,-path后面的目录前后都要加* shell中命令之间的空格很重要,空格分隔了不同的命令,\转义的一般都用空格与其他的指令隔离 shell常用变量:命令或脚本的第一个参数..." | tr -s " " 把字符串的多个空格减少到一个空格 echo "line containing apattern " | tr -d 'n' 删除字符串中的n...whereis 包括手册的位置 file文件类型细节 whatis打印手册的某一行 kill -l信号列表 ; kill -s SIGNAL PID 发个信号给进程; killall...普通单引号将语句作为字符串赋值给变量。

    66830

    Linux-生信技能树

    3行 cat readme.txt | sed -e '2i Welcome to Biotrainee' -e '2a Welcome to Biotrainee()' #2行前后加字,-e参数...环境变量、状态变量、位置参数变量、自定义变量,调用变量时,要在变量前面加一个 $符号 环境变量:用于存储有关shell会话和工作环境的系统变量 状态变量:用于记录命令的运行结果 位置参数变量:用于用于向命令或程序脚本中传递信息...找到工具的老家并且使用$PATH调用命令 echo #打印字符串,打印变量值,变量调用要加$ $echo $PATH #echo命令在服务器中的路径 /trainee2/vip28/miniconda3...#变量要加{},否则不容易识别 done for i in {1..10} do touch file${i} done list="CDS exon gene start_codon stop_codon...file> shift + F #用top或者htop进行监视 top/htop 或者 top | grep '$LOGNMAE' 10Linux中其他的语言脚本 R语言 $ cat test.R

    2.1K10

    Shell 编程日记

    把时间赋值给DATE 变量DATE=\`date +%T\` 006 $() 命令替换,等同于\`\`,但推荐使用$() 把时间赋值给DATE 变量DATE=$(date +%T) 007 ${} 变量引用...,推荐 声明变量 T 并打印输出到屏幕T=$(ls -l)echo ${T} 008 | 管道符,把前一个命令执行的结果作为后一个命令的输入 查看文件 test.txt 并统计行数cat test.txt...// 删除数组 ---- Shell 测试语句 在Shell 脚本中,表达式要 [] 括起来,且表达式两边均要有空格 数值比较 比较表达式 描述 n1 -eq n2 n1 = n2 n1 -ge n2...命令 done // for 支持多变量,注意空格 for (( i=1,j=10;ii++,j-- )) do 命令 done case 语句 case 变量 in 值a...// 删除文件 file 第 7 行以后所有的行 // 插入操作,如果使用变量,请使用双引号 sed -i "Line i str" file // 在 Line行前插入 str(新行),i 前可以加数字

    20520

    shell 快速入门

    /bin/bash # 变量 echo "01_变量.sh" # 变量定义与赋值,等号两边不能用空格分开 name=hahahaha echo $name echo 也使用 {} 输出为 ${name...# 在 Linux 系统中,不同进程 ID 的 Shell 默认为不同的命名空间 VAR_01=100 function update() { # 在函数内外访问到的是同一个变量 VAR_01=..." # 带不带双引号看起来一样,但是对于输出空格有区别 VAR="A B C" echo 不带引号对于连续空格只输出一个:$VAR echo "带引号会把所有空格输出:$VAR" #...echo '转义符在单引号内输出 \,单引号只把内容作为字面量输出' echo '转义符不能用,单引号内不能输出单引号' # `` 反引号:命令替换,将命令的标准输出作为值赋给某个变量 # 命令替换也可以使用...# exec file 将 file 文件中的内容作为 exec 的标准输入 # exec > file 将 file 文件作为标准输出 # exec 3file 指定文件标识符 # exec 3

    1.9K30
    领券