我正在学习Linux命令行,并遇到了一个使我感到困惑的正则表达式。
有人能不能把这事做一遍,解释一下它在做什么?我知道这第一部分,因为读将使用答复作为一个变量,如果没有提供。
read -p "Enter a single item > "
# is input a valid filename?
if [[ $REPLY =~ ^[-[:alnum:]\._]+$ ]]; then
echo "'$REPLY' is a valid file name."
比如为什么.-在里面?是否检查$REPLY的开头是否为破折号?
我想替换每个文件路径的部分,这些部分将由find linux命令找到。现附上我的方法如下:
find . -type f -name "*.txt" -exec echo {} | sed "s/f/u/g" {} \;
我希望将文件路径中的每个字母"f“替换为"u”。不幸的是,我得到了这个错误:
find: missing argument to `-exec'
sed: can't read {}: No such file or directory
sed: can't read ;: No such file or
所以我刚刚在我2014年年中的Macbook Pro Retina上安装了Ubuntu 15.10作为一个独立的分区。
一切都很好,我安装的每个应用程序也都在工作,但无论什么情况,每次安装或更新都会出现一些错误。
alex@Alex-LinuxTop:~$ sudo apt-get install vlc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed
在我的Node.js代码中,我在Linux上运行时会收到以下错误,但在我的窗口机器上没有。我不会在这两者之间改变文件结构。为什么会发生这种事?
Error: Cannot find module './app/helpers/textHelper.js'
at Function.Module._resolveFilename (module.js:470:15)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (i
一个朋友在一个USB驱动器上给了我一些文件,这些文件被格式化为NTFS。在他的Linux系统中,他复制了一个包含?(例如“去Millinocket?.mp3的路是哪条路”)。我无法使用我的Windows 10系统复制该文件。不是从Windows资源管理器,也不是从cmd提示符。我得到一个错误文件名,目录名,或卷标签语法是不正确的。德尔,伦,复制全部失败。Dir将显示文件,并接受实际的文件名。
>ren "Which Way to Millinocket?.mp3" foo.mp3
The filename, directory name, or volume label
当我使用grep查找我需要的文本时,它将显示包含与给定模式匹配的行。
例如,
# grep -r ".*Linux" *
path0/output.txt:I hope you enjoyed working on Linux.
path1/output1.txt:Welcome to Linux.
path2/output2.txt:I hope you will have fun with Linux.
然后,我想编辑文件path2/output2.txt,因此,我输入了vim path2/output2.txt。
但是,我不认为这是一个有效的方法。
如何在grep之后复制
给定一个中等大小的文件树(几百个),有没有什么工具可以(递归地)扫描整个树并显示每个文件的名称,以及该文件当前是否包含CRLF、LF或混合行终止符?
既可以显示当前状态又可以有选择地更改特定文件的GUI是首选的,但不是必需的。
我也更喜欢Windows的解决方案,但是我可以访问Bash for Windows和一个Linux机器,它可以访问相同的文件树,所以如果需要的话,我可以使用Linux-y。
以下是文章的引文:
ISO 9660不是一个复杂的文件系统,但有一些值得记住的怪癖。似乎有些操作系统也会创建不兼容的CD,所以要小心!这方面的主要示例是可用于文件名的字符集。严格地说,文件名只能由大写字母and、数字、点和下划线组成。此外,还有一个分号,它将可见文件名与其版本号后缀分隔开来。许多操作系统还允许小写字母和其他字符。Linux的VFS向用户显示小写文件名,尽管CD内容实际上包含大写字符。
所以我的问题是,Linux如何知道哪些字母应该是大写字母,哪些字母应该是小写字母,而在CD上它们都是大写字母?
二进制文件(在Linux下)没有扩展名,所以我不能使用模式来排除它们。因此,当我使用SVN add添加一个目录时,我会得到如下所示的结果
$ svn add recursion_vector/
A recursion_vector
A recursion_vector/rec_vec.cxx
A recursion_vector/rec_vec.h
A (bin) recursion_vector/rec_vec
这里的rec_vec是我想要排除的可执行文件。显然,SVN将其识别为二进制。现在我可以告诉Subversion忽略所有二进制文件了