我需要一个linux bash脚本来循环文件夹中的所有文件,并检查其中是否有一个字符串,改变他们的另一个字符串。例如,我们检查file contanis是否为AAAA,然后用CCCC替换BBBB,如果没有AAAA,我们将DDDD改为EEEE。
我写了一些代码,但我不确定它们是否能正常工作:
#!/bin/bash
PATH = /path/to/files/* # files has no extension
for file in $PATH; do
if grep -q "AAAA" $file; then
replace "BBBB
我对Bash和Linux很陌生。我在巴什试着让它发生。到目前为止,我的代码看起来像这样:
问题在于如何使用awk或sed,我想.当我试图把一个常数和一个变量之和在某种程度上是错误的。括号或不同的引号没有任何区别。
for i in {0..10}
do
touch /path/file$i
awk -v "NR>=1+$i*9 && NR<=$i*9" /path/BigFile > /path/file$i
(or with sed) sed -n "1+$i*9,$i*9" /path/BigFile
我希望使用"sed“命令将Linux路径更改为Windows路径,例如:
Linux:/opt/test/dash/apps/tomcat到Windows:c:\test\dash\apps\tomcat
我试过:
sed -i 's|'/opt/test/dash/apps/tomcat'|'c:\\\\\\\test\\\\\\\dash\\\\\\\apps\\\\\\\tomcat'|g' /filename - But no luck!!
我想要的全部/opt/应该用c:\替换,其余的"/“应该替换为"\
假设我有一个以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
我的文件包含以下几行
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 & Linux Stack Exchange is a question and answer site for users of Linux,
输出
Unix
& Linux
Stack
Exchange
is
a question
and
answer
site
for
users
of
Linux
系统
Linux hosek 4.15.0-48-generic #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
发布
为了存储变量,我需要在bash脚本中以命令的形式获得输出。
示例
sed -n '/# Main configuration./,/# Websites./p' webcheck-$category.cfg | sed '1,1d' | sed '$ d'
此命令返回以下行:
email_sender='some@emai