找到一些特定的文件,然后一旦找到一个文件,我想要一些特定的词,然后用一个新的词替换它。我可以用一行来做吗?
例如,我想找到一个文件 'file.txt' 并在该文件中使用单行命令搜索read和替换它write。
我将输出重定向到一个文件中,然后得到如下信息:
| id | code | color_code |
-------+------+------------+
|11A00B| 15 | 9129102 |
|11A00C| 16 | 9129103 |
(2 rows)
| id | code | color_code |
-------+------+------------+
|11B00B| 25 | 9129152 |
|11B00C| 36 | 9129162 |
(2 rows)
| id | code | color_code |
-------+------+------------+
|11C00B| 22 | 9129107 |
|11C00C| 9 | 9129108 |
(2 rows)
Run Code Online (Sandbox Code Playgroud)
如何将其转换为 csv 样式,例如:
| id | code | color_code |
|11A00B| 15 | 9129102 |
|11A00C| 16 | 9129103 …Run Code Online (Sandbox Code Playgroud) 我有一个具有以下格式的文件:
A 485C72F95C72E15C EXTERNAL
B CC32480A3247F84A SYSTEM
C EC2A63F12A63B76C EXTERNAL
Run Code Online (Sandbox Code Playgroud)
我想使用变量“字母”的值提供第一列中的字母,并将第二列中的值替换为我在变量“id”中提供的值。在任何情况下,第三列可能不同或不匹配。第一列和第二列永远不会包含空格或特殊字符。
我尝试使用sed,但我的 sed-fu 不强。我想出了这个:
letter=A
id=MYNEWIDSTRING
sed "/$letter /s/[^ ]*/$id/2"
Run Code Online (Sandbox Code Playgroud)
输出是:
A MYNEWIDSTRING EXTERNAL
B MYNEWIDSTRING SYSTEM
C EC2A63F12A63B76C EXTERNAL
Run Code Online (Sandbox Code Playgroud)
id 被替换为两行,我假设这是由于在原始 id 字符串的末尾匹配了 'A '。
我知道用来sed -i就地编辑文件,但还没有这样做,因为我的命令仍然有点狡猾。
我哪里出错了,还是应该使用不同的方法?
我的问题是关于文本处理:
在列表中,我有以下格式的 IP 地址和计算机名称:
IP address: 192.168.1.25
Computer name: computer7office
IP address: 192.168.1.69
Computer name: computer22office
IP address: 192.168.1.44
Computer name: computer12personal
Run Code Online (Sandbox Code Playgroud)
我需要的输出:
This computer ip address is xxx.xxx.x.xx and is under the name zzzzzzzzzz
Run Code Online (Sandbox Code Playgroud)
如何使用命令行自动将列表中的 IP 和名称复制到输出文件?你能解释一下你的命令吗,因为当我不得不复制/粘贴我不理解的东西时很遗憾。
我有两个文件fileA和fileB。
我必须从 fileA 中提取 column1 awk '{print $1}',然后将输出搜索到其他 fileB 中,并将匹配的记录保存到一个新文件 fileC 中,例如:
fileA:
seg1 rec1
seg2 rec2
seg3 rec3
Run Code Online (Sandbox Code Playgroud)
我需要使用 awk 命令检索第 1 列,并搜索第 1 列fileB以检索如下记录:
fileB:
seg1 one
seg2 two
seg3 three
seg4 four
seg5 five
Run Code Online (Sandbox Code Playgroud)
从文件A 中提取列1 数据,并使用该数据在文件B 中进行搜索,并将匹配的记录保存到测试文件中。我的输出应该是这样的:
fileC:
seg1 one
seg2 two
seg3 three
Run Code Online (Sandbox Code Playgroud) 我在一个文件夹中有许多文本文件。其中的文本格式如下:
%%%%%%%%%%@yahoo.com
%%%%%%@wanadoo.fr
%%%%raviplywoodglasscentre@yahoo.comravi
%%nameemail%%@yahoo.com
%.getincontact@numberland.com
%0dronbracale@roadrunner.com
%1%3@example.com
%1@elsewhere.com
%1@example.com
Run Code Online (Sandbox Code Playgroud)
我想对所有文件文本进行更改并使它们如下所示:
{"email":"%%%%%%%%%%@yahoo.com"}
{"email":"%%%%%%@wanadoo.fr"}
{"email":"%%%%raviplywoodglasscentre@yahoo.comravi"}
{"email":"%%nameemail%%@yahoo.com"}
Run Code Online (Sandbox Code Playgroud)
我想制作这样的完整文件,它们位于文件夹中。
我试过这个:
awk '{ printf("{"email":"%s"}", $l);}' test
Run Code Online (Sandbox Code Playgroud)
但它没有用。
那么,有什么方法可以修改文件夹中所有文件中的文本吗?
我试图从文件中提取不常见的文本,我试过这个:
awk 'FNR==NR {a[$0]++; next} !a[$0]' 1.txt 2.txt
http://PQR.com
http://example.com
Run Code Online (Sandbox Code Playgroud)
以下是输入文件:
File: 1.txt
http://google.com
http://GOOGLE.com
http://example1.com
http://seperate.com
http://pqr.com
File: 2.txt
http://PQR.com
http://example.com
http://google.com
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,http://pqr.com在文件中提供1.txt和http://PQR.com在2.txt。和结果 display http://PQR.com,这在两个文件中都很常见。因此,我如何才能仅显示不常见的文本(不取决于文本的大小写)?
我做了一些研究,但找不到任何帮助,我需要在文本文件中找到“war”这个词,我知道我可以使用该cat命令,但我需要以某种方式修改它,有人可以帮忙吗?
如何在文本文件中添加一列,其中的值是行号?
之前的文件:
Foo Ba Lk Q
Lorem ipsum doler
Run Code Online (Sandbox Code Playgroud)
文件后
1 Foo Ba Lk Q
2 Lorem ipsum doler
Run Code Online (Sandbox Code Playgroud)
等等
我必须用第一个词替换每一行的最后一个词。代码是:
$ sed "s/\(^a-z,0-9]*\)\(.*\)\([a-z,0-9]*$\)/\1\2\1\g".
Run Code Online (Sandbox Code Playgroud)
这部分我\(^a-z,0-9]*\)\(.*\)\([a-z,0-9]*$\)特别不明白\(.*\)。