GVKun编程网logo

shell – 如何只在diff中添加/更改行?(shell在指定行上面添加)

30

在这篇文章中,我们将为您详细介绍shell–如何只在diff中添加/更改行?的内容,并且讨论关于shell在指定行上面添加的相关问题。此外,我们还会涉及一些关于bash–在shell脚本中添加计数器、

在这篇文章中,我们将为您详细介绍shell – 如何只在diff中添加/更改行?的内容,并且讨论关于shell在指定行上面添加的相关问题。此外,我们还会涉及一些关于bash – 在shell脚本中添加计数器、bash – 如何使用shell脚本在文本文件中添加空行?、jsdiff-npm-如何在使用Diff.createTwoFilesPatch()的同时在上下文中添加更多行?、linux shell 文件比较 diff 简介的知识,以帮助您更全面地了解这个主题。

本文目录一览:

shell – 如何只在diff中添加/更改行?(shell在指定行上面添加)

shell – 如何只在diff中添加/更改行?(shell在指定行上面添加)

A.TXT

1
2
3
4
5
6

b.txt

10
2
3
40
50
6
70

我想对这些生成以下输出的文件运行一些命令.

10
40
50
70

如何在两个文件上运行差异,但只显示更改的行.我不希望输出周围有任何其他元数据.

我也不希望看到更改行的任何上下文.

解决方法

尝试

comm -1 -3 a.txt b.txt

comm,common lines,是一个方便的命令.

bash – 在shell脚本中添加计数器

bash – 在shell脚本中添加计数器

我的shell脚本中有以下代码,如果没有找到任何文件,它将继续休眠。它睡了半个小时,但目前我没有任何计数器只能执行下面的代码20次,然后退出程序,如果文件仍然不在那里(意味着不要做任何事情20后检查退出完整脚本)。

什么是最好的方式来做这个问题?所以我也知道通过查看已经尝试了20次的电子邮件。

希望我很清楚

while true; do
  if /home/hadoop/latest/bin/hadoop fs -ls /apps/hdtech/bds/quality-rt/dt=$DATE_YEST_FORMAT2 then
       echo "Files Present" | mailx -s "File Present"  -r admin@host.com admin@host.com
       break
  else
       echo "Sleeping for half an hour" | mailx -s "Time to Sleep Now"  -r admin@host.com admin@host.com
       sleep 1800
  fi
done
以下是实现柜台的方法:
counter=0
while true; do
  if /home/hadoop/latest/bin/hadoop fs -ls /apps/hdtech/bds/quality-rt/dt=$DATE_YEST_FORMAT2 then
       echo "Files Present" | mailx -s "File Present"  -r admin@host.com admin@host.com
       exit 0
  elif [[ "$counter" -gt 20 ]]; then
       echo "Counter: $counter times reached; Exiting loop!"
       exit 1
  else
       counter=$((counter+1))
       echo "Counter: $counter time(s); Sleeping for another half an hour" | mailx -s "Time to Sleep Now"  -r admin@host.com admin@host.com
       sleep 1800
  fi
done

一些说明:

> counter = $((counter 1)) – 这是你如何增加一个计数器。在这种情况下,$ for counter是双括号内的可选项。> elif [[“$ counter”-gt 20]];那么 – 这检查$计数器是否不大于20.如果是这样,它输出适当的消息并突破你的while循环。

bash – 如何使用shell脚本在文本文件中添加空行?

bash – 如何使用shell脚本在文本文件中添加空行?

这是我的代码,test.txt文件包含更多的空行和除了tab的空白空间,我想删除那个空的空格和空行,但我在启动st ^之前需要一个空行,怎么办呢?

sed "s/^[ ]*//" -i  test.txt
cat $2 > /tmp/tt.txt
sed '/^$/d' test.txt > /tmp/tt.txt
echo " " >> test.txt
echo " " >>  /tmp/tt.txt
mv /tmp/tt.txt  test.txt

我得到输出像

st^flower
 p^rose
 p^jasmine
st^animals 
 p^bear
 p^elephant

我希望输出像

st^flower
 p^rose
 p^jasmine

st^animals 
 p^bear
 p^elephant

解决方法

我已经阅读了你的评论“它给了每一行空间,但我只想在st ^之前”.
因此,您可以使用以下代码在st ^之前插入新行:

$cat /tmp/tt.txt | sed 's/^st\^/\n\0/g'

例如:

$echo '
st^flower
 p^rose
 p^jasmine
 st^animals 
 p^bear
 p^elephant' | sed 's/^st\^/\n\0/g'

对我来说很好.

jsdiff-npm-如何在使用Diff.createTwoFilesPatch()的同时在上下文中添加更多行?

jsdiff-npm-如何在使用Diff.createTwoFilesPatch()的同时在上下文中添加更多行?

如何解决jsdiff-npm-如何在使用Diff.createTwoFilesPatch()的同时在上下文中添加更多行??

我目前正在使用jsdiff在基于nodejs的lambda中的两个json之间进行区分,如下所示:

var diff = Diff.createTwoFilesPatch(
    "file","file",JSON.stringify(msg.originalPlacement,undefined,2),JSON.stringify(msg.newPlacement,2)
  );

我确实需要比较庞大的json,但是上面的代码只给了我两个json中不同的部分。有没有一种方法可以获取此差异文本,该文本可以显示整个json以及已更改的那些部分。换句话说,有没有一种方法可以向Diff.createTwoFilesPatch添加更多“上下文线”?我真的很喜欢一个例子

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

linux shell 文件比较 diff 简介

linux shell 文件比较 diff 简介

diff 可以用来比较文件和文件夹是否相同

比较文件

diff file1 file2 >/dev/null

比较文件夹

diff -rNaq dir1 dir2 >/dev/null

-r  递归比较所有找到的子目录

-N 把缺少的文件当作空白文件处理

-a  把所有文件当作本文件逐行比较

-q 近输出文件是否有差异,不报告错误

重点是看这里的返回值

if  [ "$?" == "0" ];then
    echo "the file or dir is same!"
else 
     echo "the file or dir is different!"
fi

 

 

今天的关于shell – 如何只在diff中添加/更改行?shell在指定行上面添加的分享已经结束,谢谢您的关注,如果想了解更多关于bash – 在shell脚本中添加计数器、bash – 如何使用shell脚本在文本文件中添加空行?、jsdiff-npm-如何在使用Diff.createTwoFilesPatch()的同时在上下文中添加更多行?、linux shell 文件比较 diff 简介的相关知识,请在本站进行查询。

本文标签: