在输入管道上使用SED,如何将输入插入到将用作linux命令的文本中间?
echo foobar | sed 's/^/one two /'
这将输出one two foobar。
我如何使用SED重新格式化它,以便管道值之间像one foobar two一样
我已经试过将两个SED命令排成一行,但是这不起作用,格式也变得混乱了。因此,我正在寻找一种方法来做它与单一的SED命令。
我有以下bash脚本片段,它使用grep来检查输入行是否包含某些模式。
echo $input_line | grep -q "$pattern"
if [ $? -eq 0 ];
then
# Input line contains pattern
# Execute some bash commands
else
# Input line DOES NOT contain pattern
# Execute other bash commands
fi
我需要在没有grep的情况下用awk重写它。我尝试了几个变体,但它们都不起作用,例如,下面
我尝试使用sed命令解析一个文件,并且只保留在下一行中有重复的行。
例
(在名为test的文件中编写)
line
line
line
line1
line
line3
line1
line2
line2
line
预期产出
line
line
line2
我的shell命令
cat test | sed -rn '$!N; /^(.*)\n\1/P; D'
输出
line
line
line
line
line2
我想知道这个命令有什么问题吗?为什么我得到了两个额外的line ??
我正在为一个在文件中排序的值列表进行排名分配。
一个小型的例子是
输入:
1
2
2
2
3
4
当有平分时,我需要分配上限值,而不是正常的排名。所以所需的输出是
1 1
2 4 #Note that it is not 2, since we have three 2's the upper bound is 4
2 4
2 4
3 5
4 6
我试过像下面这样的东西,但不一致。
$ awk ' BEGIN{t=0} NR==FNR { a[$1]++; next } { print $1,a[$1]+t; t=a[$1] } ' rank_in.txt ran
我有一些问题,我没有找到,我不知道如何在我的脚本中实现好的排序。我想要排序一些输入字符串,以显示冗余(一些重复),并从中返回最大的重复行,如果我有更多相同的重复例如
输入:
qwe1
qwe1
wer2
wer2
wer4
输出: //我想要什么
2 qwe1
input:
asd1
asd1
asd1
asd2
asd2
asd2
asd3
asd3
asd3
output: // What i want
3 asd1 // If I have a the same name return id of alphabeticall first
#!/bin/bash
sort -n|u
我正在读一篇关于awk脚本的教程,并观察到了这种奇怪的行为,为什么这个awk脚本在执行时会重复要求一个数字,即使没有像while或for这样的循环结构。如果我们输入CTRL+D(EOF),它将停止提示输入另一个数字。
#!/bin/awk -f
BEGIN {
print "type a number";
}
{
print "The square of ", $1, " is ", $1*$1;
print "type another number";
}
END {
print "Don
我有一个带有2列的txt文件,并希望在这两个列之间添加一个新列,该列的值范围为1到5,重复次数与其他列相同。我正在尝试使用AWK,但我愿意接受其他建议
示例输入
A 100
A 200
A 300
A 400
A 500
B 1000
B 2000
B 3000
B 4000
B 5000
示例输出
A 1 100
A 2 200
A 3 300
A 4 400
A 5 500
B 1 1000
B 2 2000
B 3 3000
B 4 4000
B 5 5000
现在我在努力
awk 'BEGIN{FS=OFS="\t"}{for (i = 1; i <= 5
我有一个标签分隔的文本文件,我需要检查副本。布局大致是这样的。(文件中的第一个条目是列名。)
示例输入文件:
+--------+-----------+--------+------------+-------------+----------+
| First | Last | BookID | Title | PublisherID | AuthorID |
+--------+-----------+--------+------------+-------------+----------+
| James | Joyce | 37 | Uly
我有一个Python my_script.py,它在两个元素之间生成一个由制表符分隔的配对列表,每一行一个:
$ python my_script.py
cat dog
dog wolf
cat dog
pig chicken
dog cat
我希望将这个脚本的输出输入到某种类型的终端命令中,以便筛选出重复的组合,而不仅仅是重复的排列。对于重复排列,我可以使用如下内容:
$ python my_script.py | sort | uniq
cat dog
dog cat
dog wolf
pig chicken
删除重复的“猫狗”。这种方法的问题是,我只剩下“猫狗”和“狗猫”,就我的目的而言
我有一个文件包含下面的模式,多达2000行。对于每一组三行,模式重复使用不同的数值,但在开始的文本值是常见的,直到文件结束。
这里我需要合并三行
输入如下
ABC 1223334
Days 344678544324677
Base 45666
ABC 1234565
Days 234567899765443
Base 456643
需要输出的样子
ABC 1223334 Days 344678544324677 Base 45666
ABC 1234565 Days 234567899765443 Base 456643