我正在尝试编写一个脚本,该脚本接受一个字符串,然后读取文件 test 并将以模式开头的名称(忽略大小写)打印到另一个文件,测试文件包含以下数据:
u001:x:Laith_Budairi
u002:x:laith_buda
u003:x:bara_adnan
u004:x:Basim_khadir
u005:x:bilal_jarrar
这就是我尝试做的:
echo type a pattern to find
read s
cat test | cut -d: -f3 | grep -i '^$s' > printfile
但它没有在文件中打印任何内容,我该怎么办?
最佳答案
'...'
防止变量扩展。只需将 '^$s'
更改为 "^$s"
即可,但还有其他需要改进的地方:
您不需要
cat
,您可以发送cut
文件名:cut -d: -f3 测试 | grep ...
你并不真的需要
cut
,你可以立即grep:grep -i "^u...:x:$s"test > printfile
不过,如果你只有一个名字部分那就没问题了。
关于regex - Linux 脚本 + 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49964056/