我的文件包含以下几行
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命令或任何其他命令都会给出这个输出?搜索特定的单词,如果这是对的话,然后删除那个词,然后删除该行中的所有单词。
假设我有一个以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
对于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
我四处搜索,发现了这两个主题,但是它们是不同的,因为空间的数量是固定的,而我的样本没有固定的空间计数。
https://stackoverflow.com/questions/47428445/i-want-grep-to-grep-one-word-which-is-having-spaces-it
https://askubuntu.com/questions/949326/how-to-include-a-space-character-with-grep
样本文本:
Section 1: Plan your day, write out your plan
期望产出:
Section
案文如下:
We will now present the Linux ls command
... here description of ls
We will now present the Linux cd command
... here description of cd
... more description
Done
下面的sed替换正则表达式应用于文本。
sed 's/.*Linux \(.*\) .*/\1:/' ex2.txt
,它提供以下输出
ls:
... here description of ls
cd:
...
当我使用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之后复制
我要从文件名列表中删除日期。
文件名如下所示
data file-file201409.txt
info data file 2014-10.txt
我想要的结果是
data file-file.txt
info data file.txt
这是我试过的
for f in $previous_folder/*.txt; do
echo "$f"
mv "$f" "${f#*.txt}"
done
但这不太管用
我是linux新手,请帮帮我。
我正在运行LinuxMint20.2 (Mint通过Debian来自ubuntu )。
我有一个来自abraunegg的onedrive客户端的日志文件,它输出类似这样的内容(onedrive客户机通过systemd不断运行):
2022-Jan-16 14:40:14.9203443 Starting a sync with OneDrive
2022-Jan-16 14:40:14.9206537 Syncing changes from OneDrive ...
2022-Jan-16 14:40:16.1507118 Sync with OneDrive is com
如何在sed命令中仅替换特定值
例如,
Linux system
Windows syste
Mac syste
我试过这个命令
sed /system/system/g‘file.txt
safwanpaloli@hello:~/linx$ sed 's/syste/system/g' new.txt
Linux systemm
Windows system
Mac system
我预期的结果
Linux system
Windows system
Mac system
我正在学习Linux,我发现了一些意想不到的行为。
这是剧本
ls /home/shiv/Documents
Dhoni.txt
现在,我想用球拍
cd /home/shiv/Documents
ls *txt
Dhoni.txt
但是,如果我也想搜索.jpg文件,那么我将得到一个错误
cd /home/shiv/Documents
ls *{txt, jpg}
ls: cannot access '*{txt,': No such file or directory
ls: cannot access 'jpg}': No such file or dir
我对Linux命令或bash脚本一无所知,所以请帮帮我。我在不同的目录中有很多文件,我想使用bash文件将所有这些文件从"name“重命名为"name.xml”,可以这样做吗?我只是在网上找到有用的代码,如下所示:
shopt -s globstar # enable ** globstar/recursivity
for i in **/*.txt; do
echo "$i" "${i/%.txt}.xml";
done
它甚至不能工作。
在我的目录层次结构中,我有许多名为STATUS.txt的文本文件。这些文本文件每个包含一个关键字,如完整、等待、未来或打开。我希望执行以下形式的shell命令:
./mycommand OPEN
,它将列出包含名为STATUS.txt的文件的所有目录,其中该文件包含文本“打开”。
将来,我希望扩展这个脚本,以便对返回的目录进行排序。排序将由存储在与PRIORITY.txt相同目录中的文件STATUS.txt的数值决定。然而,这可以等到我的能力水平提高。目前,我很高兴按任何顺序列出目录。
我搜索了Stack溢出,但没有结果:
unix按文件内容筛选
linux按文件内容过滤
she
我对Linux相当陌生,最近开始尝试使用命令行。我决定创建一个文件,并称之为“hi.txt”。该文件的内容如下:
This is hi.txt.
hi
hi
hi
我使用命令sed -i 's/hi/hotel/g' hi.txt希望将文档中的“hi”更改为hotel。
Thotels is hotel.txt
hotel
hotel
hotel
正如你所看到的,“嗨”这个词也变了。有什么办法阻止这种事发生吗?