我有一个文件里面有这样的信息
Info A: 1
Info B: 2
Info C: 3
Info D: 4
Info A: 1
Info B: 2
Info C: 123
Info D: 4
现在我正试着用Info接电话,但我需要单独使用。我需要一个命令来获取第一个块的Info的输出,以及一个从第二个块获取Info的命令。这个命令为我工作,以获得两个块的Info。在命令的第一部分中,我将删除除Info行之外的所有内容。在命令的第二部分中,我将删除字符串"Info C:“。
cat test2 | sed -e '/Info C: /!d' -e 's/Inf
我有一堆被覆盖的日志文件(file.log.1、file.log.2等)。当我把它们从设备上复制到我的本地机器上时,我就失去了原来的时间戳。所以我想把它们按时间顺序排列。问题是,我不一定知道哪个是最新的,哪个是最老的。
我想要做的是,如果所有日志都在目录中,则打印如下所示:
file: file.log.1
first line: [first line that isn't whitespace]
last line: [last line that isn't whitespace]
我只需编写一个python脚本就可以做到这一点,但如果可能的话,我更愿意使用linux内建
如果我做了git diff,我将得到所有未分阶段文件的当前更改。
是否有一种更简单的方法来自动对第一个列出的文件执行git diff (使用内置标志)?
我想出的最好办法是:
function git_diff_first_unstaged_file() {
if [[ $(git diff --name-only) ]]; then
git diff $(git diff --name-only | sed -n '1 p')
else
echo "gdf: There are currently no unstaged cha
我知道sed可以通过几种不同的方式追加文本:
若要追加字符串NEW_TEXT,请执行以下操作:
-i '/PATTERN/ a NEW_TEXT‘文件
要追加文件file_with_new_text的内容,请执行以下操作:
sed -i '/PATTERN/ r file_with_new_text文件
但是,是否存在通过stdout向sed添加管道文本的问题?我希望获得相当于:
# XXX,YYY,ZZZ are line numbers
# The following appends lines XXX-YYY in file1
# after line Z
假设我有一个文件file.txt
hello
world
hi
there
this
wow
我知道sed可以在一条线路上操作,比如:
sed -n '2p' file.txt
或者范围:
sed -n '2,4p' file.txt
但是如何在一个特定的线路加上一个范围内操作呢?
sed -n '1line and 4,5' file.txt或文字打印的第一行和范围从第4至第5行?