我的文件包含以下几行
File.txt
Unix is good
Linux and unix is different?
Linux is also good, then what about unix?
这里我要输出
(1st line blank)
Linix and
Linux is also good, then what about
在这里vi命令或任何其他命令都会给出这个输出?搜索特定的单词,如果这是对的话,然后删除那个词,然后删除该行中的所有单词。
对于grep特定的关键字和它的内容,我有一个问题。这是示例文件,实际文件比这个文件大。
示例
user@linux:~$ cat url.txt
abcrandomtextdef another random text blablabla
another random iwantthis text abcrandomtextdef url=https://www.google.com ghirandomtextjkl
ghirandomtextjkl another random text yadayada
wxyz iwantthis abcdef url=yahoo.com yaday
我使用windows和linux混合开发我的脚本,所以我想要一种简单的方法来跟踪文件路径,而不必设置它们。
我使用的是here包,在从命令行运行之前,这个包似乎运行得很好。
我的所有文件都存储在项目目录中,所以我对外部文件没有任何问题。
举例说明。我的linux项目位于:/home/ubuntu/work/ On Windows it:c\work\
在RStudio中,当我使用here时,这两种情况都很好,所以如果我调用另一个脚本,我就使用source(here("expected_value.R")),这在两个平台上都可以使用。
当我从linux命令行的脚本运行时
Rscr
我想重命名几个文件的格式
libabc-x86_64-gnu-linux.a
libasdfgh-x86-gnu-linux.a
全部按格式
libabc.a
libasdfgh.a
使用Bash。我已经编写了regex (libpj[^-]*).*,它应该将有趣的部分保留在捕获组1中。
for i in `ls *.a`; do mv "$i" "${i/(lib[^-]*).*/\1}"; done
但是Bash给出了许多形式上的错误
mv: 'libabc-x86_64-gnu-linux.a' and 'libabc-x86_64
假设我有一个以Unix格式创建的文件。现在,在将该文件发送到窗口之前,必须完成EOL转换。
我需要在bash中这样做,这就是我到目前为止所拥有的:
为了简单起见,假设我的文件名为file_linux.txt,它提供以下输出:
cat -A file_linux.txt
first line$
second line$
third line$
file file_linux.txt
file_linux.txt: ASCII text
因此,似乎我只需要在$符号之前添加回车(^M或\r)。
我的想法是使用sed将$替换为\r$,方法如下:
sed 's/$/\r$/g' fil
我在找一个脚本,工具...对于linux,它可以找到所有文件和所有文件中的关键字,类似于OSX Finder (我不是在寻找具有相同Finder界面的应用程序,而只是相同的工作)
例如,如果我在OSX Finder中搜索"linux“,我会得到:
linux (directory with linux name)
linux-2.4.0 (directory with linux in name)
...
memory.h (file with linux in text)
...
command.c (file with linux in text)
...
so-08-filesy
我想检查主机名,以确保它们符合Bash Shell中的标准命名约定。
假设主机名是ab-cde-01
wolf@linux:~$ h='ab-cde-01'
wolf@linux:~$ echo $h
ab-cde-01
wolf@linux:~$
我一开始就构建了if else循环,它运行得很好。
wolf@linux:~$ if [ $h = 'ab-cde-01' ]; then
> echo $h is a valid name
> else
> echo $h is an INVALID name
> fi
ab-cde-01
使用regexp字符串,如何删除包含匹配的第一行之前的所有行?例如,我如何才能改变这一点:
lost
load
linux
loan
linux
这方面:
linux
loan
linux
我试过:
echo "lost
load
linux
loan
linux" | sed -e 's/.*^li.*$//g'
但是它返回这个,而不是改变任何东西:
lost
load
linux
loan
linux
我想让它工作,这样当没有匹配的时候,它就不会输出任何东西。
我正在为我的Linux主目录创建一个git存储库。我想忽略大多数事情,除了文件/目录,我白名单。我有这个:
# Ignore everything
*
# But not these files...
!.gitignore
!*/scripts/*
# the above line doesn't work, so this is a test:
!./scripts/*
但是它忽略了我添加到scripts/子目录的文件。我一直在用-f添加一些东西,这是次优的。
这个问题的答案,,对我不起作用。
Git版本2.1.4。