如何删除文本每一行的第一个“文本”

How to delete the first “text” the each line of the text

这是我第一次在那里提问,如果有什么地方做错了,我很抱歉

考虑一个名为“00.txt”的文件,它包含以下内容。

ai_00_01_01 word01 word01(translated)
ai_00_01_02 word02 word02(translated)

...
ai_00_01_305 word305 word305(translated)

P.S。 (translated) 并不意味着那里真的有一个 () ,它只是该行单词的另一种语言

希望改成这样:

word01 = word01(translated)
word02 = word02(translated)

...
word305 = word305(translated)

我尝试过的东西:

cut -f 2- -d ' ' 00.txt > new_file.txt

“使用 space 作为分隔符,从 file.txt 文件中给我第二个和任何其他字段,并将输出定向到 new_file.txt” -by ivanivan in https://unix.stackexchange.com/questions/515249/how-to-delete-the-first-word-in-each-line-of-a-file (我认为这意味着删除文本直到第一个space?英语不好抱歉)

我试过的代码只是在第n个里面生成了一个新的txt文件,而00的txt文件没有任何改变

感谢任何人帮助这个菜鸟(又名我自己)

看看这样的东西是否是您要找的东西..

% cat stuff.txt
ai_00_01_01 word01 word01(translated)
ai_00_01_02 word02 word02(translated)
ai_00_01_305 word305 word305(translated)

% cut -d' ' -f2- stuff.txt > stuff2.txt

输出为:

% cat stuff2.txt
word01 word01(translated)
word02 word02(translated)
word305 word305(translated)

然后您可以根据需要插入 =,如下所示:

% sed 's/ / = /' stuff2.txt
word01 = word01(translated)
word02 = word02(translated)
word305 = word305(translated)

然后,全部放在一行中:

% cut -d' ' -f2- stuff.txt | sed 's/ / = /' > stuff2.txt

由于您的数据已经用空格分隔,您可以使用带有默认分隔符的 for /f 循环:

for /f "tokens=2,3" %%A in (00.txt) do echo %%A = %%B >>new_file.txt

这需要每一行中的第二个和第三个东西,将第二个东西存储在 %%A 中,将第三个东西存储在 %%B 中,然后以你在你的文件中提到的格式显示这两个东西问题,将其重定向到 new_file.txt。 (请注意,如果您认为您将 运行 脚本不止一次,您应该在此之前添加一行以删除 new_file.txt 否则您只需将这些行附加到现有文件的末尾.)