知道了,默认分隔符有制表符
他说的是制表符,TAB键打出来的
一样的啊。c就是char字节啊,很多命令看字节都是c。 m不知道代表什么单词, 但是m c输出结果是一样的
可以
sed 's/<user>USER<\/user>/<passwd>PWD<\/passwd>/g'
空格可以,换行不行
明白了,制表符的问题。
没有给出足够的条件
正则匹配属于包含匹配,*号在正则里面表示匹配0个或多个,所以a*表示匹配包含0个a或多个a的字符,所以所有的字符都匹配了包括bb。
*表示前一个字符匹配0次或任意多次, *a没有前一个字符
嗯,老师忽略了小数点
这里的1,2,3,4,5,6是留个变量,相当于脚本输入的$n,1是$1,以此类推,$1的%3s则是输出变量就是'__1',共三位
1-6的变量以相同的方式输出,就看起来像你说的一样了
中括号[]表示里面的东西可加可不加,中括号本身不是命令的一部分
grep "^[s].*[d]$" test.txt
我有啊
aa = $(printf student.txt)
echo $aa
我换了一个思路。用老师课件里的内容做例子。
sed 's/cang/cangls/g' student.txt
#替换cang为cangls
在这里如果我要在cang前加入特定字符串“0000”
sed 's/cang/0000cang/g' student.txt
#还是替换,但是我没有删除cang,而是改成了0000cang,做到了添加特定字符串的类似功能。但问题是字符产生了位移。
3 cangls F 70
3 0000cangls F 70
cat /etc/passwd
因为cut的-f可以加参数1,-d不可以加参数,所以你把参数1写在-d后面没效果
grep "pengp"直接这么去找就可以了
为什么不用tr将多个空格压缩成一个呢
他是匹配一行当中只有一个数字的行
点号“.”出现在字符组中(即[]中时),就不再表示元字符(即不再表示任意字符)了,而是表示点号本身。
1、grep ^[.] test.txt :去查找文本中以点号开头的行;
2、grep [.] test.txt :去查找文本中有点号的行;